none
Проблемы отображения символов ASP .NET сайта в IE RRS feed

  • Вопрос

  • Добрый день! На сайте есть кнопка такого вида

    <button id="fly" type="button" data-parameter="cart_807" onclick="addToCartRequest(807,'Juw-9550','Аквариум JUWEL Вижн 180 бук 92х41х55см',21048);" class="btn btn-block btn-default" style="background-image: none;">

                             <a style="font-size:10pt; text-transform:none ">

    <%-- тут некий контент--%>
                             </a>
        
    </button>

    Главное происходит тут: onclick="addToCartRequest(807,'Juw-9550','Аквариум JUWEL Вижн 180 бук 92х41х55см',21048);"

    java скрипт метод addToCartRequest добавляет данные в корзину с помощью CartHandler.ashx:

            function addToCartRequest(prod_id, articul, nomination, price) {
                createXMLHttpRequest();
                xmlHttp.onreadystatechange = handleStateChange;
                xmlHttp.open("GET", "../CART_AJAX/CartHandler.ashx?ProductId=" + prod_id +
                                "&Articul=" + articul +
                                "&Price=" + price +
                                "&Nomination=" + nomination,
                                true);

                xmlHttp.send(null);

            }

    Так вот при отладке в IE в хэндлер вместо нормального текста попадают символы из черных ромбиков с вопросами

    Вроде такого:

    A-61915: �������� ���������� 12.5� ...

    Т.е. в хендлере на этот момент

    Nomination = HttpUtility.HtmlEncode(context.Request.QueryString["Nomination"]);

    в реквесте уже располагаются каракули.

    В context.Request.ContentEncoding указано UTF-8, все как полагается.

    Подскажите, что делать? В чем проблема?

    P.S. Остальные браузеры показывают все корректно: Maxthon, Firefox, Opera, Chrome.

    21 декабря 2014 г. 2:15

Ответы


  • Посмотрите тему  Asp.net Generic Handler Encoding Problem

    • Помечено в качестве ответа Kutcher 21 декабря 2014 г. 22:28
    21 декабря 2014 г. 18:57
  • Спасибо. Перепробовал все из этого списка, но ничего не вышло.

    Оказалось проблема таилась в другом месте. У меня были иные ожидания от работы методов HttpUtility.HtmlEncode и HttpUtility.HtmlDecode, которые, правда, подтверждались другими браузерами.

    Я с их помощью в контроле подготавливал параметры для java функции onclick.

    В общем, заменил это дело на  HttpUtility.UrlEncode и HttpUtility.UrlDecode(при чтении) и все символы стали читаемыми. Только мне не понятно почему IE выдавал эти символы, а остальные браузеры работали нормально. 

    Спасибо большое за наводку. Тут еще надо разбираться почему не обновляются данные при загрузке, опять же только в IE :)

    • Помечено в качестве ответа Kutcher 21 декабря 2014 г. 22:28
    21 декабря 2014 г. 22:28

Все ответы

  • Здравствуйте! а так происходит и на хостинге и на локальном IIS?
    21 декабря 2014 г. 6:01
  • Да, причем только в IE! Еще и не обновляет данные в корзине на PageLoad. Специально выложил промежуточную версию на сервак сюда http://aquashop-rostov.ru/path/0  
    21 декабря 2014 г. 17:48

  • Посмотрите тему  Asp.net Generic Handler Encoding Problem

    • Помечено в качестве ответа Kutcher 21 декабря 2014 г. 22:28
    21 декабря 2014 г. 18:57
  • Спасибо. Перепробовал все из этого списка, но ничего не вышло.

    Оказалось проблема таилась в другом месте. У меня были иные ожидания от работы методов HttpUtility.HtmlEncode и HttpUtility.HtmlDecode, которые, правда, подтверждались другими браузерами.

    Я с их помощью в контроле подготавливал параметры для java функции onclick.

    В общем, заменил это дело на  HttpUtility.UrlEncode и HttpUtility.UrlDecode(при чтении) и все символы стали читаемыми. Только мне не понятно почему IE выдавал эти символы, а остальные браузеры работали нормально. 

    Спасибо большое за наводку. Тут еще надо разбираться почему не обновляются данные при загрузке, опять же только в IE :)

    • Помечено в качестве ответа Kutcher 21 декабря 2014 г. 22:28
    21 декабря 2014 г. 22:28