none
Проблемы с кодировкой текста RRS feed

  • Вопрос

  • У меня появилась проблема с кодировкой тескста. Она заключается в том, что когда я вывожу сообщение об ошибке другой программы (предварительно считав из потока ошибки), появляются непонятные символы, очевидно это из-за того что часть текста на русском. Вот пример такого текста:

    ЌҐ®Ўа Ў®в ­­®Ґ ЁбЄ«о祭ЁҐ: 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.com
    23 сентября 2010 г. 5:30
  •  К сожалению, ни одна из 140 кодировок не подошла при получения байтов из строки и переводе их в другую кодировку
    24 сентября 2010 г. 15:58
  • У потока изначально кодировка 1251-ая, но как это мне может помочь я не знаю, но надеюсь что хоть кто-нибудь мне поможет
    24 сентября 2010 г. 16:02
  • Такую кодировку можно задать вот так вот:

    Encoding.GetEncoding(1251)

    E-mail: Svatoslav.Pankratov@gmail.com
    24 сентября 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