« プログラミング講座(29) 人間対コンピューター囲碁対局 | トップページ | プログラミング講座(31) モンテカルロ法 »

プログラミング講座(30) Small Basicのコード系

ところで、Small Basicの扱う文字コード系はUnicode (ユニコード、UTF-8)と呼ばれるものです。

作成中の囲碁プログラムの路数を変更して、他の囲碁プログラムの棋譜ファイルを読み込ませたところ、日本語が化けてしまうことが判りました。

そもそもSGFフォーマットで日本語のコード系が許されているのか理解できていないので、ここから先は不毛な話にもなりかねないのですが、Small Basicの入門という意味で話を続けます。

試した他の囲碁プログラムではシフトJISと呼ばれるコード系が使われていました。

なんとかシフトJISからUTF-8に変換できないか調べてみましたが、Text.GetSubText()でシフトJISの文字を取り出すと必ずFFFD(16進数)というコードが返るので、Small BasicではシフトJISの情報は失われ、読み込み不能であることが判りました。

したがって結論は、Small Basicのプログラムで日本語を扱うならUTF-8コード系に甘んじるしかないということです。

【表1 日本語コード例】
文字: 日本語
UTF-8: E6 97 A5 E6 9C AC E8 AA 9E
シフトJIS: 93 FA 96 7B 8C EA

(つづく)

« プログラミング講座(29) 人間対コンピューター囲碁対局 | トップページ | プログラミング講座(31) モンテカルロ法 »

コメント

自己レスです。今作成中の囲碁プログラムはSGF (Smart Game Format)のバージョン1(FF[1])を使用しているのですが、バージョン4(FF[4})では、CA[]というプロパティがあって、CA[UTF-8]のように文字セットの指定ができるようになっていました。いずれFF[4]をサポートするように直してもいいかなと思っています。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/21203/49231539

この記事へのトラックバック一覧です: プログラミング講座(30) Small Basicのコード系:

« プログラミング講座(29) 人間対コンピューター囲碁対局 | トップページ | プログラミング講座(31) モンテカルロ法 »

フォト

つぶやき

無料ブログはココログ

ウェブ検索

  • 毎日の検索で環境貢献
    このパーツから
    Powered by

最近のトラックバック