Как я могу преобразовать строку в UTF-8 в C #?

У меня есть строка, которую я получаю из стороннего приложения, и я хотел бы правильно отобразить ее на любом языке, используя C #, на моей Windows Surface.

Из-за неправильного кодирования часть моей строки выглядит по-испански так:

Acción

тогда как это должно выглядеть так:

Acción

Согласно ответу на этот вопрос:Как узнать кодировку строки в C #кодировка, которую я получаю, должна уже поступать в UTF-8, но она читается в Encoding.Default (возможно, ANSI?).

Я пытаюсь преобразовать эту строку в настоящий UTF-8, но одна из проблем заключается в том, что я могу видеть только подмножество класса Encoding (только свойства UTF8 и Unicode), вероятно, потому, что я ограничен интерфейсом Windows Surface.

Я попробовал некоторые фрагменты, которые я нашел в Интернете, но ни один из них не оказался успешным для восточных языков (т.е. корейский). Один пример выглядит следующим образом:

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, 0, myString.Length);

Ребята, у вас есть другие идеи, которые я мог бы попробовать?

Ответы на вопрос(6)

Ваш ответ на вопрос