6
C#で文字列をUTF-8に変換するにはどうすればよいですか?
サードパーティのアプリから受け取った文字列があり、Windows SurfaceでC#を使用して任意の言語で正しく表示したいのですが。 エンコーディングが正しくないため、私の文字列の一部はスペイン語では次のようになります。 Acción これは次のようになります。 アクシオン この質問の回答によると: C#で文字列エンコーディングを知る方法、受け取っているエンコーディングはすでにUTF-8で提供されているはずですが、Encoding.Default(おそらくANSI?)で読み取られます。 この文字列を実際のUTF-8に変換しようとしていますが、問題の1つは、Encodingクラスのサブセットしか表示できない(UTF8およびUnicodeプロパティのみ)ことです。これは、おそらくWindowsサーフェスAPIに制限されているためです。 私はインターネットで見つけたスニペットをいくつか試しましたが、東部の言語(つまり、韓国語)でこれまでに成功したと証明されたものはありません。一例は次のとおりです。 var utf8 = Encoding.UTF8; byte[] utfBytes = utf8.GetBytes(myString); myString= utf8.GetString(utfBytes, 0, utfBytes.Length); また、文字列をバイト配列に抽出してから、UTF8.GetStringを使用してみました。 byte[] myByteArray = new byte[myString.Length]; for (int ix = 0; ix < myString.Length; ++ix) { char ch = myString[ix]; myByteArray[ix] = (byte) ch; } myString = Encoding.UTF8.GetString(myByteArray, …