文字コードについての質問なんですが、
文字列に独自の文字コードを埋め込もうと思ってて

char first[3] = {0xef, 0x27, 0x00};
char second[10] = "・てすと";
char last[3] = {0xef, 0x28, 0x00};
char buforg[100];
ZeroMemory(buforg, sizeof(buforg));
strcat(buforg, first);
strcat(buforg, second);
strcat(buforg, last);

System::String^ strTest = gcnew String(buforg);

こんな感じでやって strTestには 0xef27・てすと0xef28 と入るのが理想なんですが
0x30fb・てすと0x30fb になってしまい 「・」が0x30fbなので区別がつかない状態になってしまいます。
Stringはおろかwchar_tなどのUnicode全般でこのような現象になってる気がするのですが、
この勝手に変換されちゃう現象どうにかする方法はないでしょうか?

WindowsXP SP3 VisualStudio2008Pro C++/CLI