C++ と C# に文字列処理関数があります。C++ では、文字のコードは C# の場合と同じようにˆ
返されます。Visual Studio 2010 を使用して C++ でビルドしているときに、プロジェクト設定で文字セットを「未設定」に設定しました。C# では、変換の 1 つ中に使用しています。違いはありますか?C++ と C# で同じ動作を得るにはどうすればよいですか?-120
710
System.Text.Encoding.Default
1177 次
1 に答える
7
キャラクターはU+02C6です。C++ で使用しているエンコーディングは、おそらく CP 1252 であり、この文字をバイト 0x88 (10 進数で符号付き char を表示する場合は -120) としてエンコードします。C# はエンコーディング UTF-16 を使用し、この文字を 0x02C6 (10 進数で 710) としてエンコードします。
char の代わりに wchar_t を使用すると、Windows の C++ で UTF-16 を使用できます。
C# 文字列で CP1252 を使用することはできませんが、エンコーディングを使用して文字列から異なるエンコーディングでバイト配列を取得できます。
byte[] in_cp1252 = Encoding.GetEncoding(1252).GetBytes("Your string here");
于 2012-06-13T05:48:10.197 に答える