[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