locked
Проблема с кодировкой в WebBrowser RRS feed

  • Вопрос

  • Здравствуйте, возникла проблема с кодировкой при отображении текста

     

    webBrowser1.NavigateToString("<html><head></head><body>Русский текст</></html>");

    Неправильно отображается русский шрифт. С англ все норм, а русский не отображается правильно. Как правильно отобразить русский текст? заранее лагодарен за ответ.

    • Изменено PaksIk 21 декабря 2011 г. 11:24
    20 декабря 2011 г. 14:51

Ответы

  • хм-м, после отказа от указания кодировки в заголовке, попробовал сам на симуляторе (на девайсе у меня проблем не было) и тоже столкнулся с этой проблемой.

     

    Предложенный ниже пример (с конвертированием) предлагается везде в инете

    http://pugachev.info/archives/622

    http://www.designersilverlight.com/2010/10/25/international-utf-8-characters-in-windows-phone-7-webbrowser-control/

    т.е. он должен помочь. Однако, на симуляторе он у меня так и не заработал - вместо русского текста был набор "&#"-кодов

     

    Еще предлагался вариант загрузки html-файла в поток с указанием кодировки

     

    StreamReader reader = new StreamReader(TitleContainer.OpenStream("file.html"), Encoding.GetEncoding("unicode"));
    
    webbrowser1.NavigateToString(reader.ReadToEnd());
    
    правда, я этот вариант еще не успел проверить.

     



    • Изменено ealexash 22 декабря 2011 г. 8:28
    • Помечено в качестве ответа PaksIk 22 декабря 2011 г. 9:14
    22 декабря 2011 г. 8:26

Все ответы

  • Скорее всего проблема в кодировке. В заголовке страницы, передаваемой браузеру, нужно указать имя используемой кодировки. Например, так

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
    Русский текст
    </body>
    </html>
    

    • Предложено в качестве ответа ealexash 21 декабря 2011 г. 6:56
    • Отменено предложение в качестве ответа PaksIk 21 декабря 2011 г. 11:20
    20 декабря 2011 г. 17:13
  • не помогает(( проблема актуальна... Либо подскажите альтернативу (контрол), в котором можно форматировать текст


    • Изменено PaksIk 21 декабря 2011 г. 11:25
    21 декабря 2011 г. 7:58
  • Попробуйте так http://blog.yazovskiy.com/?p=28

    21 декабря 2011 г. 13:11
  • хм-м, после отказа от указания кодировки в заголовке, попробовал сам на симуляторе (на девайсе у меня проблем не было) и тоже столкнулся с этой проблемой.

     

    Предложенный ниже пример (с конвертированием) предлагается везде в инете

    http://pugachev.info/archives/622

    http://www.designersilverlight.com/2010/10/25/international-utf-8-characters-in-windows-phone-7-webbrowser-control/

    т.е. он должен помочь. Однако, на симуляторе он у меня так и не заработал - вместо русского текста был набор "&#"-кодов

     

    Еще предлагался вариант загрузки html-файла в поток с указанием кодировки

     

    StreamReader reader = new StreamReader(TitleContainer.OpenStream("file.html"), Encoding.GetEncoding("unicode"));
    
    webbrowser1.NavigateToString(reader.ReadToEnd());
    
    правда, я этот вариант еще не успел проверить.

     



    • Изменено ealexash 22 декабря 2011 г. 8:28
    • Помечено в качестве ответа PaksIk 22 декабря 2011 г. 9:14
    22 декабря 2011 г. 8:26
  • хм-м, после отказа от указания кодировки в заголовке, попробовал сам на симуляторе (на девайсе у меня проблем не было) и тоже столкнулся с этой проблемой.

     

    Предложенный ниже пример (с конвертированием) предлагается везде в инете

    http://pugachev.info/archives/622

    http://www.designersilverlight.com/2010/10/25/international-utf-8-characters-in-windows-phone-7-webbrowser-control/

    т.е. он должен помочь. Однако, на симуляторе он у меня так и не заработал - вместо русского текста был набор "&#"-кодов

     

    Еще предлагался вариант загрузки html-файла в поток с указанием кодировки

     

    StreamReader reader = new StreamReader(TitleContainer.OpenStream("file.html"), Encoding.GetEncoding("unicode"));
    
    webbrowser1.NavigateToString(reader.ReadToEnd());
    
    правда, я этот вариант еще не успел проверить.

     



    Благодарю, из первой ссылки взял пример и все отобразилось русским. Очень благодарен за ответ. А то я выкручивался тем, что копировал этот хтмл файл в изолированое хранилище, и уже оттуда грузил используя webbrowser1.Navigate(Uri uri);
    22 декабря 2011 г. 9:14