KKJConvを作っていて機種依存で苦労した部分の覚書です。
[ TextBoxの改行コード ]
Nokiaの場合単純に”\n”、16進数で0x0aを改行として考えれば問題ないです。
UIQ機(M1000やM600i)ではParagraph Separator(UTF-8だとe2 80 a9)というコードを使います。
NokiaのデバイスにParagraph Separatorを書き込んでも、ちゃんと改行されます。
問題はプログラム中でParagraph Separatorをどうやって表現するかということです。”\n”みたいな文字列で表現できれば簡単なのですが見つからなかったのでKKJConvの中では以下の関数で返る文字を使用しています。
private char getParaSepa()
{
byte [] ps = new byte[3];
String sP;
// this is Paragrpah Separator in UTF-8
ps[0] = (byte)-30; ps[1] = (byte)-128; ps[2] = (byte)-87;
try {
sP = new String(ps, "UTF-8");
return sP.charAt(0);
} catch (Exception e) {
e.printStackTrace();
}
return 0x0a;
}
[ Unicode ]
Nokiaや、おそらくSonyEricssonのデバイスではUTF-16LE, UTF-16BE, UTF-8のどれでもエンコード、デコードが出来ますがM1000ではUTF-8しか扱うことが出来ないようです。このためKKJConvの辞書は最初UTF-16LEを使っていたのをUTF-8に変更しました。
PS. 日本から上海に戻ってすぐ出張に出ています。移動日が多いだけで仕事は少ないのでKKJConvの更新が出来るつもりでしたが、食事行ったり飲みに行ったりで結局何も出来ていないです。
6 comments untill now