UTF-8 BOM в ответе php на mootools xmlhttprequest - PullRequest
0 голосов
/ 03 июня 2010

Я пишу свой первый маленький компонент Joomla с поддержкой AJAX. Я использую MooTools. Я получил xmlhttprequest для связи с моим компонентом Joomla, и этот компонент возвращает ответ - простой текст, отображаемый php, например

echo 'Hello World!';

Все работает нормально, за исключением того, что wireshark сообщает мне, что к ответу добавляется \ 357 \ 273 \ 277 \ 357 \ 273 \ 277, когда он читается JavaScript на стороне клиента. Это отображается в виде небольшого квадрата перед ответом в окне предупреждения, которое показывает сценарий.

Я не устанавливаю явно кодировку в xmlhttprequest; Документы mootools говорят, что по умолчанию используется UTF8.

Какой правильный способ справиться с этим? Должен ли я установить кодировку по запросу? Тип пантомимы? Должен ли JavaScript избавиться от этого? Я не планирую использовать в ответе символы, требующие UTF8, поэтому использование старого доброго ascii для меня тоже подойдет.

Спасибо

Ответы [ 2 ]

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

Я использую Microsoft Expression Web 3, и хотя он был настроен так, чтобы не добавлять спецификации для файлов php, в начале файлов php действительно была спецификация. Я использовал шестнадцатеричный редактор для удаления BOM, и теперь Expression больше не добавляет BOM при сохранении.

Я не знаю, почему в ответе xmlhttprequest было 2 спецификации, но теперь они оба пропали.

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

Спецификация UTF-8 обычно не рекомендуется. Порядок байтов не может быть изменен в UTF-8, поэтому он служит лишь небольшой цели, кроме информирования потребляющего источника о том, что следующий контент действительно кодирован в UTF-8.

Я бы убрал его на конце Joomla (желательно) или с помощью JavaScript.

Кроме того, по какой-то причине, похоже, у вас там двойная спецификация.

Этот связанный вопрос также может помочь.

...