HSP: HSPTV対応ソフト作成時の注意点

HSP3.1からは、HSPTVブラウザ対応ソフトというものを作成することができます。
その際の注意点を記載しておきます。


簡単におさらい

HSPTV対応ソフトの作成は、ソースコードで hsptv.as をインクルードするだけです。
とりあえずこれだけでHSPTV上で実行されることになります。

詳細はHSPに付属のリファレンスを読みましょう。


HSPTVランキング機能

HSPTV対応プログラムにすることにより、ランキング機能が使えるようになりますが、その時に注意しなければならないことがあります。

  1. コメントはサーバー送信後にEUC-JPになる

    HSPTVをローカルで実行しているときは、ランキング情報はカレントディレクトリに hsptvdat.txt というファイル名で保存されます。
    この時の文字コードはShiftJISとなっています。

    しかし、コンテスト等に応募してHSPTV配信プログラムとなったときは、サーバー側に保存されるランキング情報の文字コードはEUC-JPとなります。
    すなわち、データ送信時にShiftJISからEUC-JPに変換された後サーバーに保存され、データ取得時にはEUC-JPからShiftJISに変換された後プログラムに渡されます。
    通常の文字なら問題ありませんが、ShiftJISからEUC-JPに変換できないような文字、バイナリデータのようなものは、プログラムが意図したとおりに動かない可能性があります。
    実際、私がコンテスト応募時に経験したのですが、ローカルでは動いていたのに、いざHSPTVで配信されるとうまく動きませんでした。

  2. &(アンパサンド)は使わない

    ShiftJIS−EUC-JP変換で問題が発生するなら、半角文字のみを使えば全く問題ないかと言うと、実はそうでもありません。
    1つ使っていけない文字があります。&(アンパサンド、アンドマーク)です。

    HSPTV側のバグのようですが、&がコメントに入るとそれ以降の文字がばっさりと消えてしまいます。
    現状(HSP3.1)では & は使えない、使ったとしても消えてしまうので、プログラム側で & を使わないように対処しておく必要があります。
    (これはセキュリティ上の問題点も抱えている可能性があるようなので、HSPTVがアップデートされるかもしれません)