[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 12724] Re: 議事録「 Java 言語仕様第 3 版」を読む会(第 5 回)



高橋(徹)です。

   ""TAKAHASHI, Tomohiro" <t_takahashi@xxxxxxxxxxxxxx>"さんは書きました:

>   下記のサンプルを作ってみました。
>   UTF-8の処理のため、C++Builder(VCL)を利用しています。
:
>   WideString wmsg = "テスト例外";
>   UTF8String umsg = UTF8Encode(wmsg);
C++Builderだとライブラリが簡単ですね。さすが。

VC++の場合、Win32 APIのMultiByteToWideCharおよびWideCharToMultiByteを
組み合わせて、MS-932(CodePage 932)からUTF-8に変換する方法になりますが、
とっても面倒なコーディングが必要です。

SolarisやLinuxの場合は、iconvを使ってEUC-JPからUTF-8に変換することに
なるあと思いますが、こちらのコーディングは試していません。

ところで、実験していて分かったのですが、C++のソースファイルをUTF-8で
保存してコンパイルすると、ソースコード中の日本語文字列リテラルがUTF-8
になるんですが、これって仕様? 実装の偶然?

JNIでJava側に渡す文字列を別なヘッダーファイルに記述してUTF-8形式で保存
しておけば、面倒なMS-932→UTF-8変換をせずにそのまま渡してしまえます。

最近のLinuxだとデフォルトで日本語ロケーるがUTF-8だったりするので、JNIの
プログラミングには最適かもしれません。


--
TAKAHASHI,Toru
torutk@xxxxxxxxxxxx