Что может пойти не так при переключении кодировки HTML с UTF-8 на UTF-16? - PullRequest
5 голосов
/ 14 мая 2009

Каковы последствия перехода с UTF-8 на UTF-16 для кодирования HTML? Я хотел бы знать ваши мысли по этому вопросу. Есть ли вещи, о которых мне нужно подумать, прежде чем вносить такие изменения?

Примечание. Заинтересован из-за огромного количества текста на японском и китайском языках, с которым мне нужно справиться.

Ответы [ 6 ]

8 голосов
/ 14 мая 2009

Я могу подумать о нескольких вещах, которые пойдут не так:

  1. Вы ДОЛЖНЫ указать, что это UTF-16 в заголовке HTTP. В отличие от UTF-8, UTF-16 не ASCII-совместим, что означает, что все должно быть в UTF-16 с самого начала.
  2. Старые клиенты не поддерживают UTF-16. Например, что-нибудь на Windows 9x. Возможно, Mac OS9.
  3. Ой, подождите, я почти забыл: в Северной Америке и европейских копиях Windows XP по умолчанию не установлены азиатские шрифты.
7 голосов
/ 14 мая 2009
  • Ваше потребление трафика, вероятно, почти удвоится, при условии, что большая часть вашего HTML-кода ASCII
  • Клиенты, которые ошибочно полагают, что UTF-8 (или ASCII) будут сбиты с толку

Почему вы хотите перейти на UTF-16?

2 голосов
/ 06 декабря 2010

Очень хорошая статья, которую вы провели здесь. Основы гласят: «Когда требуется уникальная кодировка символов, кодировка символов ДОЛЖНА быть UTF-8, UTF-16 или UTF-32. US-ASCII совместима сверху с UTF-8 (строка US-ASCII также является UTF -8 строка, см. [RFC 3629]), и поэтому UTF-8 подходит, если требуется совместимость с US-ASCII. " На практике совместимость с US-ASCII настолько полезна, что почти обязательна. W3C мудро объясняет: «В других ситуациях, например, для API, более подходящими могут быть UTF-16 или UTF-32. Возможные причины выбора одного из них включают эффективность внутренней обработки и совместимость с другими процессами».

2 голосов
/ 27 июня 2009

Насколько я знаю, все современные браузеры поддерживают кодировку UTF-16. Но, как уже отмечали другие, вы должны объявить кодировку явно. Не все браузеры и платформы поддерживают все символы Юникода, но я думаю, что это независимо от того, какую кодировку вы используете.

Однако, если пропускная способность является большой проблемой, вы, вероятно, должны рассмотреть возможность сжатия HTML. Это сэкономит гораздо большую пропускную способность, чем переключение кодирования.

2 голосов
/ 14 мая 2009

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

В Википедии есть хорошее объяснение этому.

0 голосов
/ 14 мая 2009

Я подозреваю, что большинство браузеров даже не отображают ваши страницы.

...