Saya memiliki string yang saya terima dari aplikasi pihak ketiga dan saya ingin menampilkannya dengan benar dalam bahasa apa pun menggunakan C # di Windows Surface saya.
Karena penyandian yang salah, seutas string saya terlihat seperti ini dalam bahasa Spanyol:
Acción
padahal seharusnya terlihat seperti ini:
Acción
Menurut jawaban pada pertanyaan ini: Bagaimana cara mengetahui pengkodean string dalam C # , pengkodean yang saya terima seharusnya sudah datang pada UTF-8, tetapi dibaca pada Pengkodean. Kerusakan (mungkin ANSI?).
Saya mencoba untuk mengubah string ini menjadi UTF-8 nyata, tetapi salah satu masalah adalah bahwa saya hanya bisa melihat subset dari kelas Encoding (properti UTF8 dan Unicode saja), mungkin karena saya terbatas pada permukaan jendela API.
Saya telah mencoba beberapa cuplikan yang saya temukan di internet, tetapi sejauh ini belum ada yang terbukti berhasil untuk bahasa timur (yaitu bahasa Korea). Salah satu contohnya adalah sebagai berikut:
var utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(myString);
myString= utf8.GetString(utfBytes, 0, utfBytes.Length);
Saya juga mencoba mengekstraksi string ke array byte dan kemudian menggunakan 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, 0, myString.Length);
Apakah kalian punya ide lain yang bisa saya coba?
Encoding.Default
mengembalikan kode situs ANSI.