HTML кодирование ° градус символа дополнительный пробел - PullRequest
5 голосов
/ 28 сентября 2010
  1. <div id="a">°F</div>
  2. $.get("http://blah.com/go",{'TU':$('#a').text()});
  3. В журналах сервера IIS отображаются следующие параметры:
    99,5% времени: TU =% C2% B0F
    0,5% времени: TU =% C2% B0 + F
  4. , а затем происходит сбой сервера, потому что он не знает, что такое «° F».По общему признанию, один из недостатков заключается в том, что мы удаляем текст из DOM и отправляем его на наш сервер.Здесь я подозреваю, что проблема в этом, но я хотел бы понять больше.

Другая информация: в 0,5% случаев использовались IE8 и Chrome.Все IP-адреса привязаны к Колумбии, что создает локальную проблему, но мы не смогли ее воспроизвести.

Идеи ??

Ответы [ 2 ]

1 голос
/ 28 сентября 2010

Итак, проблема в том, что иногда между ° и F есть пробел, это пространство переводится в +, и сервер его не принимает?Если так, почему бы не убрать пробел перед отправкой?

$.get("http://blah.com/go",{'TU':$('#a').text().replace(' ', '')});
// Or a more granular fix
$.get("http://blah.com/go",{'TU':$('#a').text().replace(/°\sF/, '°F')});
0 голосов
/ 28 сентября 2010

Как текст помещается в div?Вы должны вывести это перед проверкой значения сервера.Я не думаю, что вероятно, что вы получаете другую кодировку одного и того же текста.Вероятно, это связано с тем, как вы помещаете это на страницу.

Также попробуйте установить кодировку страницы на сервере до того, как получите строку запроса, возможно, разные браузеры используют разные кодировки.UTF-8 - это кодировка, предложенная w3.org.В Java вы должны убедиться, что вы установили кодировку перед любыми вызовами для чтения чего-либо с клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...