Два уточнения по предыдущим ответам:
Не существует метода Encoding.GetText
(если он не был введен специально для платформы WP7). Предполагается, что метод должен быть Encoding.GetString
.
Метод Encoding.GetString
принимает параметр byte[]
, а не string
. Все строки в .NET внутренне представлены как UTF-16; нет способа иметь «строку в формате ISO-8859-1». Таким образом, вы должны быть осторожны с тем, как вы читаете ваш источник (файл, сеть), а не как вы обрабатываете свою строку.
Например, для чтения из текстового файла, закодированного в ISO-8859-1, вы можете использовать:
string text = File.ReadAllText(path, Encoding.GetEncoding("iso-8859-1"));
Чтобы сохранить в текстовый файл, закодированный в UTF-8, вы можете использовать:
File.WriteAllText(path, text, Encoding.UTF8);
Ответить на комментарий:
Да. Вы можете использовать Encoding.GetString
для декодирования вашего байтового массива (при условии, что он содержит символьные значения для текста в определенной кодировке) в string
и Encoding.GetBytes
для преобразования вашего string
обратно в байтовый массив (возможно, другого кодирование), как показано в других ответах.
Понятие «кодирование» относится к тому, как следует интерпретировать последовательности байтов (будь то массив byte[]
в памяти или содержимое файла на диске). Класс string
не обращает внимания на кодировку, из которой текст был прочитан или должен быть сохранен.