Re: Как вывести русские буквы в консоль?
От: MaLS Россия https://github.com/maliutin
Дата: 18.03.14 08:07
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>в чем может быть дело?

В вашем понимании термина кодировка.

И так, выполнив ваш код вы увидели

кракозябры

А вы не задались вопросом почему их ровно в два раза больше чем букв в слове "тест"?

Далее.

Записав код

var fromEncodind = Encoding.Unicode;

подразумевает, что будет работа с кодировкой Юникод, т.е. под значение каждого символа отводится 2 байта.
Вызвав:
var bytes = fromEncodind.GetBytes(s);

получается соответствующий байт массив:

bytes: new byte[] {66, 4, 53, 4, 65, 4, 66, 4}

где

т: new byte[] {66, 4}
е: new byte[] {53, 4}
с: new byte[] {65, 4}
т: new byte[] {66, 4}

далее используя

var toEncoding = Encoding.GetEncoding(866);


подразумеваете, что будете использовать кодировку CP866, в которой для значения каждого символа выделяется один байт. И используя
toEncoding.GetString(bytes);

получаем:

66: B
4: ♦
53: 5
4: ♦
65: A
4: ♦
66: B
4: ♦


Результат закономерен.
----
"Ответить на вопрос — значит согласиться с правильностью его постановки.", Карстен Бредемайер
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.