Как правильно вставить юникод в заголовок HTML с помощью JavaScript?

Я вижу странное поведение, когда устанавливаю заголовок HTML-страницы с помощью JavaScript. Если я вставлю ссылки на символы html непосредственно в заголовок, который Юникод правильно отображает, например:

<title>&#21543;&#20986;</title>

Но если я попытаюсь использовать ссылки на символы html через JavaScript, что-то будет преобразовывать & в (& amp; ;) (разделяя их так, чтобы SO не просто превращал их обратно в амперсанд) и, таким образом, нарушая кодировку, вызывая ее визуализацию в виде полной кодированной строки:

function execTitleChange() {
  document.title = "&#21543;&#20986;";
}

(я должен отметить, что это немного предположений: когда я выполняю эту функцию JavaScript, когда я анализирую DOM с помощью Firebug, именно здесь я вижу & вместо &.)

Если я использую закодированные \ u символы Unicode при установке значения из JavaScript тогда все снова работает правильно:

function execTitleChange() {
  document.title = "\u5427\u51fa";
}

Тот факт, что \ u закодированные символы работают, имеет для меня смысл, поскольку я думаю, что именно так JavaScript представляет символы Unicode, но я озадачен тем, почему такое поведение будет отличается при использовании ссылок на символы HTML.

8
задан BenG 24 August 2012 в 18:02
поделиться