0章 「日本語とGS」

ソース中の日本語

 > "あ".
  [130,160]

一応マルチバイト文字にしてくれているようだ
って SJISかよw (Windows版をつかってます)

 -module(text).
 -compile(export_all).
 str() ->
 	"あ".

プログラムを書いてUTF8で保存して実行してみる

 > text:str().
 [227,129,130]

お UTF8だ

ちなみにShift-Jisで保存したら、

 [130,160]

って、そうですか、バイナリそのまま見てるんですか。


Erlangの標準パッケージに「gs」と呼ばれるものがある。

バックエンドはtkらしい。

使えれば良いなぁ と思っていたが、案の定日本語がうまく通らない。

でだ、大体こういうのは内部エンコードと、GUI上のエンコードが違ってたりするんだよね。

  • xmerl_ucs:from_utf8
  • xmerl_ucs:to_utf8

このあたりを使えば良さそう。

GSを使う

 -module(test).
 -export([start/0]).
 start() ->
     I= gs:start(),
     W=  gs:window(I,[{title,"title"},{width,300},{height,300},{map,true}]),
     gs:button(W,[{label, {text,"button"}},{x,100}]).

これで 「"title"」や「"button"」に日本語を混ぜたり間にfrom_utf8,to_utf8なんかを入れたりしたけど、だめだ。

GSはあきらめることにする。
tk自体は日本語が食えないわけじゃないから、どこかをいじれば直るんだろうか?

てか、Erlang暦数時間の僕にはどうしようもない。