Гиперссылки MS Office изменяют кодовую страницу?

#html #unicode #ms-office #character-encoding

Вопрос:

При вставке следующего URL-адреса в IE: http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx, ссылка справа от страницы четко гласит «Загрузите масштабирование (77 КБ)». Если вы вставите ссылку в документ Office (Word, Excel, PowerPoint-протестировано с использованием Office 2003) и активируете ссылку из документа, в том же тексте появится пара символов A-окружности. Это связано с тем, что исходный HTML содержит сущности «amp;nbsp;» (неразрывное пространство), которые переводятся в Юникод 00A0. В UTF-8 это выражается как X’C2A0′, а затем X’C2′ отображается в виде A-окружности. Я не совсем понимаю, как кодовые страницы так перепутываются, но мне бы очень хотелось найти значение кодировки HTML meta http-equiv, которое заставит мои страницы, содержащие nbsp-сущность, отображаться правильно, даже если они связаны из офисного документа.

Ответ №1:

Я нашел ответ, который, похоже, работает. Сначала я добавил предупреждение для отображения набора символов document.charset. Это отображало «utf-8» при прямом вызове и «windows-1252» при вызове по гиперссылке в документе MS Office. Поэтому я вставил следующий мета-тег, и страницы, похоже, отображаются правильно даже при вызове из офисных документов:

 <meta http-equiv="content-type" content="text/html; charset=utf-8" />