« AnsiStringTのコンストラクタの挙動を調べる | メイン | RawByteStringの動作のテスト »

AnsiStringTの代入の挙動を調べる

AnsiStringTからコードページの異なるAnsiStringTへの代入のテスト

AnsiStringT<932> sjis = L"テスト";
AnsiStringT<20932> euc = sjis;
ShowCode(euc);

実行結果

CodePage = 20932
a5 c6 a5 b9 a5 c8

コードページにしたがって変換されている。

UnicodeStringを間に挟んだ場合のテスト

AnsiStringT<932> sjis = L"テスト";
UnicodeString uni = sjis;
AnsiStringT<20932> euc = uni;
ShowCode(euc);

実行結果

CodePage = 20932
a5 c6 a5 b9 a5 c8

Shift_JISからEUC-JPに変換されている。

結論としては、
AnsiStringTからAnsiStringTへの代入、
AnsiStringTからUnicodeStringへの代入、
UnicodeStringからAnsiStringTへの代入、
は、いずれも自動的に変換されるようだ。

今回の検証に使用した関数

void ShowCode(const RawByteString& Str)
{
  printf("CodePage = %d\n", StringCodePage(Str));
  for (int i = 1; i <= Str.Length(); i++)
  {
    printf("%x ", static_cast<unsigned char>(Str[i]));
  }
  printf("\n");
}

トラックバック

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

コメントを投稿

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

About

2008年12月29日 20:10に投稿されたエントリーのページです。

ひとつ前の投稿は「AnsiStringTのコンストラクタの挙動を調べる」です。

次の投稿は「RawByteStringの動作のテスト」です。

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

Powered by
Movable Type 3.35