Лучший отвечающий
Проблемы с кодировкой текста

Вопрос
-
У меня появилась проблема с кодировкой тескста. Она заключается в том, что когда я вывожу сообщение об ошибке другой программы (предварительно считав из потока ошибки), появляются непонятные символы, очевидно это из-за того что часть текста на русском. Вот пример такого текста:
ЌҐ®Ўа Ў®в ®Ґ ЁбЄ«о票Ґ: System.FormatException: ‚室 п бва®Є Ё¬Ґ« ҐўҐал© д®а¬ в.
ў System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
ў System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
ў Program.Main() ў D:\Files\cee\informatics\codef_23_b\codef_23_b\Program.cs:бва®Є 6
Помогите разрешить проблему.
- Перемещено Tagore Bandlamudi 1 октября 2010 г. 21:04 MSDN Forums consolidation (От:Visual C#)
20 сентября 2010 г. 10:48
Ответы
-
В консоли винды 866 codepage, поэтому
p.StartInfo.StandardErrorEncoding = Encoding.GetEncoding(866);
- Предложено в качестве ответа userdab 26 сентября 2010 г. 0:16
- Помечено в качестве ответа I.Vorontsov 28 сентября 2010 г. 6:31
26 сентября 2010 г. 0:16
Все ответы
-
Сначала выясните в какой кодировке Вы получаете текст, а потом переведите в нужную Вам с помощью класса Encoding. Это пример перевода из UTF8 - Encoding.UTF8.GetString(Encoding.Default.GetBytes(value.ToString()));21 сентября 2010 г. 9:05
-
У меня появилась проблема с кодировкой тескста. Она заключается в том, что когда я вывожу сообщение об ошибке другой программы (предварительно считав из потока ошибки), появляются непонятные символы ...
У StreamReader есть перегрузка конструктора, которая принимает аргумент в виде кодировки. Поэкспериментируй с ним.
E-mail: Svatoslav.Pankratov@gmail.com23 сентября 2010 г. 5:30 -
К сожалению, ни одна из 140 кодировок не подошла при получения байтов из строки и переводе их в другую кодировку24 сентября 2010 г. 15:58
-
У потока изначально кодировка 1251-ая, но как это мне может помочь я не знаю, но надеюсь что хоть кто-нибудь мне поможет24 сентября 2010 г. 16:02
-
Такую кодировку можно задать вот так вот:
Encoding.GetEncoding(1251)
E-mail: Svatoslav.Pankratov@gmail.com24 сентября 2010 г. 18:18 -
В консоли винды 866 codepage, поэтому
p.StartInfo.StandardErrorEncoding = Encoding.GetEncoding(866);
- Предложено в качестве ответа userdab 26 сентября 2010 г. 0:16
- Помечено в качестве ответа I.Vorontsov 28 сентября 2010 г. 6:31
26 сентября 2010 г. 0:16