A#とVisualStudio2005による.NETプログラミング・日本語編
MSSyst.String.adsをよく読んでみると、次の定義がある。
function new_String(
This : Ref := null;
c : Wide_Character;
count : Integer) return Ref;
+
が定義されているのはString
型だけなので、Wide文字列を変換する場合、どうやらこの方法しかないらしい。コードにすると次のような感じだ。
Mssyst.String.new_String(c => Wide_Character'('ほ'), count => 1)
コードはこれでよいとして、問題はコンパイラだ。ファイルがShift-JISなので、コンパイルオプションに-gnatWsを付けてコンパイルしてみたところ、依然文字化けする。pragma Wide_Character_Encoding
なども試してみたが、どうもうまくいかない。仕方が無いのでファイルをUTF-8に変換し、コンパイラオプションを-gnatW8に変更してみたところ、なんとかうまく表示することができた。ShiftJISはもしかすると未実装なのかもしれない。
とりあえず、日本語は通るようになったが、これではさすがに面倒だ。要望として作者に伝えるべきなのか、それとも、他にもっと良い方法が存在するのか。うーん。