« CSV Mailer バージョン0.5.7を公開しました。 | メイン | Windows 2000でWideCharToMultiByte関数を使うと、ISO-2022-JPのバイト数を間違う »

UnicodeStringをJIS(ISO-2022-JP)に変換すると文字が減る

C++Builder 2009で確認したところ、UnicodeStringをJISコードに変換すると文字が減るようだ。

//UTF-8
AnsiStringT<65001> utf8 = L"文字コード"; //=> 文字コード

//Shift_JIS
AnsiStringT<932> sjis = L"文字コード"; //=> 文字コード

//EUC_JP
AnsiStringT<20932> euc = L"文字コード"; //=> 文字コード

//x-mac-japanese
AnsiStringT<10001> mac = L"文字コード"; //=> 文字コード

//JISコードの時は文字が減る
//iso-2022-jp(JIS)
AnsiStringT<50220> jis1 = L"文字コード"; //=> 文字コ

//csISO2022JP (JIS 1 バイト カタカナ可)
AnsiStringT<50220> jis2 = L"文字コード"; //=> 文字コ

//iso-2022-jp (JIS 1 バイト カタカナ可 - SO/SI)
AnsiStringT<50220> jis3 = L"文字コード"; //=> 文字コ

どうやらマルチバイト文字が混ざると問題になるみたい。

AnsiStringT<50220> jis1 = L"12345";
UnicodeString s1 = jis1; //12345

AnsiStringT<50220> jis2 = L"abc";
UnicodeString s2 = jis2; //abc

AnsiStringT<50220> jis3 = L"あいう";
UnicodeString s3 = jis3; //あ

もう少し調べてみたい。

追記
C++Builder 2009で確認しました。

トラックバック

このエントリーのトラックバックURL:
http://www.gesource.jp/mt/mt-tb.cgi/1064

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2009年09月11日 23:55に投稿されたエントリーのページです。

ひとつ前の投稿は「CSV Mailer バージョン0.5.7を公開しました。」です。

次の投稿は「Windows 2000でWideCharToMultiByte関数を使うと、ISO-2022-JPのバイト数を間違う」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35