« AnsiStringTの代入の挙動を調べる | メイン | Ruby on Railsでファイルのアップロードの機能テストを行うにはActionController::fixture_file_uploadを使用する »

RawByteStringの動作のテスト

RawByteStringの動作のテスト

RawByteStringのコンストラクタのテスト

char*を受け取るコンストラクタ

RawByteString raw("テスト");
ShowCode(raw);

実行結果

CodePage = 65535
83 65 83 58 83 67

バイト列をそのまま変換しないで保持している。

wchar_t*を受け取るコンストラクタ

RawByteString raw(L"テスト");
ShowCode(raw);

実行結果

CodePage = 932

値が空になっている。
RawByteString(wchar_t*)は引数が無効になるので注意が必要だ。

代入のテスト

const wchar_t* c = L"テスト";
AnsiStringT<20932> euc(c);
RawByteString raw = euc;
ShowCode(raw);

実行結果

CodePage = 20932
a5 c6 a5 b9 a5 c8

コードページも文字のバイト列も変換しないで、そのまま保持している。

UnicodeString uni = "テスト";
RawByteString raw = uni;
ShowCode(raw);

実行結果

CodePage = 932

UnicodeStringをRawByteStringに代入すると空になる。
wchar_t*を引数にとるコンストラクタと同じ挙動だ。

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

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/872

コメントを投稿

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

About

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

ひとつ前の投稿は「AnsiStringTの代入の挙動を調べる」です。

次の投稿は「Ruby on Railsでファイルのアップロードの機能テストを行うにはActionController::fixture_file_uploadを使用する」です。

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

Powered by
Movable Type 3.35