Международные символы в Javascript

Я работаю над веб-приложением, где я переношу данные с сервера на браузер в XML.

Поскольку я датский, я быстро сталкиваюсь с проблемами с символами æøå.

Я знаю, что в html я использую "æøå" для æøå.

однако, как только символы проходят через JavaScript, я получаю черные ящики с "?" в них при использовании æøå, а "æøå" печатается как есть.

Я обязательно установил его в utf-8, но это мало помогает.

В идеале я хочу, чтобы он работал с любыми специальными символами (естественно).

Ниже приведен пример, который не работает:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
        <script type="text/javascript" charset="utf-8">
            alert("&aelig;&oslash;&aring;");
            alert("æøå");

        </script>
    </head>
    <body>
    </body>
</html>

Что я делаю неправильно?


Хорошо, спасибо Grapefrukts ответ, я получил его работу.

Я действительно нуждался в нем для данных, поступающих с сервера MySQL. Поскольку сохранение файлов в кодировке UTF-8 решает проблему только для статического контента, я полагаю, что я бы включил решение для строк с сервера MySQL, вытащив с помощью PHP:

utf8_encode($MyStringHere)

Ответ 1

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

Ответ 2

Если вы никогда не можете установить кодировку ответа, вы можете использовать escape-последовательность \u в строковом литерале JavaScript, чтобы отобразить эти символы.

alert("\u00e6\u00f8\u00e5")

Ответ 3

Вы также можете использовать String.fromCharCode() для вывода символа из числового объекта.

например. String.fromCharCode( 8226 ) создаст символ пули.

Ответ 4

Я получаю "& aelig; & oslash; & aring;" для первого и некоторых нежелательных символов для следующего. Может быть, что javascript не искажает (или mojibake) ваши письма, но в диалоговом окне оповещения используется шрифт по умолчанию для системы, а шрифт не может отображать буквы?

Ответ 5

Я использую такой код с тайским языком. Это нормально.

$message - моя переменная PHP.

echo("<html><head><meta charset='utf-8'></head><body><script type='text/javascript'>alert('" . $message . "');</script></body></html>");

Надеюсь, это поможет. Спасибо.

(Я не могу опубликовать изображение того, что я сделал, поскольку система сказала: "У меня недостаточно репутации", поэтому я оставляю изображение здесь. http://goo.gl/9P3DtI Извините за неудобства.)

Извините за слабый английский.

Ответ 6

Это работает как ожидалось для меня:

alert("&aelig;&oslash;&aring;");

... создает предупреждение, содержащее строку "& aelig; & oslash; & aring;" в то время как

alert("æøå");

... создает предупреждение с символами, отличными от ascii.

Javascript довольно уф-8 чист и не стремится помешать вам на пути.

Возможно, вы помещаете это на веб-сервер, который служит ему как ISO-8859-1? Если вы используете Apache, в вашем конфигурационном файле Apache (или в .httaccess, если вы можете переопределить), вы должны иметь строку

AddCharset utf-8 .js

(Примечание: отредактировано для выхода из амперсандов... в противном случае это не имеет смысла.)