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はもしかすると未実装なのかもしれない。

とりあえず、日本語は通るようになったが、これではさすがに面倒だ。要望として作者に伝えるべきなのか、それとも、他にもっと良い方法が存在するのか。うーん。