браузер iPhone / IIS / Tomcat, японский язык, запутываются параметры http - PullRequest
0 голосов
/ 23 июня 2010

Первая среда: клиент - это мобильное Safari на iPhone, сервер состоит из Tomcat 5.5, запущенного IIS.

У меня есть фрагмент кода JavaScript, который отправляет один параметр на сервер и возвращает ответ:

var url = "/abc/ABCServlet";
var paramsString = "name=SomeName"
xmlhttpobj = getXmlHttpObject(); //Browser specific object returned
xmlhttpobj.onreadystatechange = callbackFunction;
xmlhttpobj.open("GET", url + "?" + paramsString, true);
xmlhttpobj.send(null);

Это прекрасно работает, когда язык / язык iPhone - EN / US; но когда языковой стандарт / язык изменен на японский, параметр запроса, полученный сервером, становится "SomeName #" без кавычек. Каким-то образом # добавляется в конце.

Любые подсказки, почему?

1 Ответ

0 голосов
/ 23 июня 2010

Надеюсь, все, что вам нужно сделать, это добавить мета-тег в верхней части HTML-страницы, который указывает правильный набор символов (например, <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />) и соответствует любой кодировке, которую ожидают ваши файлы данных.

Если это не сработает, убедитесь, что вы используете одинаковую кодировку символов (предпочтительно UTF-8) во всем приложении. Сценарии на стороне сервера и любые файлы, содержащие текстовые строки, которые вы будете добавлять непосредственно в поток ответов, должны быть сохранены с этой единственной кодировкой. Рекомендуется, чтобы ваши серверы отправляли HTTP-заголовок «Content-Type» в той же кодировке, если это возможно (например, «text / html; charset = utf-8»). И вы должны убедиться, что страница мобильного сафари, которая выполняет отображение, имеет правильный метатег Content-Type.

Японские разработчики имеют неприятную привычку хранить файлы в EUC или ISO-2022-JP, которые часто вынуждают браузер использовать разные шрифты в некоторых браузерах и могут серьезно испортить вашу страницу, если браузер ожидает римскую кодировку , Хорошей новостью является то, что если вы вынуждены использовать одну из японских кодировок, эта кодировка обычно будет отображаться для большинства текстов на английском языке. Это расширенные символы, на которые нужно обратить внимание.

Теперь я могу ошибаться, но я ДУМАЛ, что загрузка этих файлов через AJAX не была проблемой (я думаю, что браузер переназначает данные символов в соответствии с набором символов для каждого текстового файла, который он загружает), но когда вы начинаете смешивать документ кодировки в одном файле (и особенно в теле документа), плохие вещи могут произойти. Возможно, мобильное сафари требует одинаковой кодировки как для файлов HTML, так и для файлов AJAX. Надеюсь нет. Это было бы ужасно.

...