2012-05-30 4 views
4

Во внешнем javascript-файле у меня есть функция, которая используется для добавления текста в ячейки таблицы (в HTML-документ, к которому добавлен файл javascript), текст, который иногда может иметь финские символы (например, ä) , Этот текст передается в качестве аргумента в моей функции:Кодировка символов Javascript

content += addTableField(XML, 'Käyttötarkoitus', 'purpose', 255); 

Проблема заключается в том, что диакритические, такие как «» преобразуются в некоторых других фиктивных персонажей, таких, как «». Я вижу это при просмотре HTML-документа в браузере. Это явно нежелательно, и это довольно странно, так как кодировка символов для HTML-документа является UTF-8.

Как я могу решить эту проблему?

Заранее благодарим за помощь!

+1

Все ли ваши файлы (в том числе js one) поданы в UTF-8? Обратите внимание, что некоторые серверы (например, некоторые версии tomcat) могут сломать вашу js-кодировку. –

+0

Я не знаю. И я не знаю, как узнать ... –

+1

[UTF-8 на всем пути] (http://stackoverflow.com/questions/279170/utf-8-all-the-way-through) – bostaf

ответ

4

Файл, который содержит content += addTableField(XML, 'Käyttötarkoitus', 'purpose', 255);, не сохраняется в кодировке UTF-8.

Я не знаю, какой редактор вы используете, но можете найти его в настройках или в диалоговом окне сохранения.

Пример:

Если вы не можете получить эту работу, вы всегда можете выписать буквенные кодовые точки в JavaScript:

content += addTableField(XML, 'K\u00E4ytt\u00f6tarkoitus', 'purpose', 255); 

кредит: triplee

+1

В любом случае вы можете использовать '' K \ u00E4ytt \ u00F5tarkoitus'' для переносимости, хотя это уродливо и трудно читать. – tripleee

+0

@tripleee спасибо, я отредактировал его. Btw '' ö "' '' '\ u00f6'': P – Esailija

+0

Простите мою неряшливую печать и спасибо (-: – tripleee

0

Символьная кодировка HTML-файла/документа не имеет никакого отношения к внешнему источнику.

Вам необходимо доставить файл сценария с кодировкой символов UTF8. Если он был сохранен как таковой, ваша конфигурация сервера является фиктивной.

1

Чтобы проверить кодировку символов, объявленную сервером, вы можете использовать Firebug (в меню Info есть команда для просмотра HTTP-заголовков). Кроме того, вы можете использовать онлайн-услуги, такие как Web-Sniffer.

Если в заголовках внешнего файла .js указан параметр charset, вам необходимо использовать эту кодировку, если вы не можете изменить соответствующие параметры сервера (возможно, файл .htaccess).

Если у них отсутствует параметр charset, вы можете указать кодировку в элементе script, например. <script src="foo.js" charset="utf-8">.

Обозначенная кодировка должна совпадать с фактической кодировкой, которую вы обычно можете выбрать при сохранении файла (при необходимости используйте команду «Сохранить как»).

Смежные вопросы