2

C++ と C# に文字列処理関数があります。C++ では、文字のコードは C# の場合と同じようにˆ返されます。Visual Studio 2010 を使用して C++ でビルドしているときに、プロジェクト設定で文字セットを「未設定」に設定しました。C# では、変換の 1 つ中に使用しています。違いはありますか?C++ と C# で同じ動作を得るにはどうすればよいですか?-120710System.Text.Encoding.Default

4

1 に答える 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 に答える