Должен ли я перейти с UTF-8 на UTF-16 для размещения китайских символов в моем HTML? - PullRequest
8 голосов
/ 05 октября 2010

Я использую ASP.NET MVC, MS SQL и IIS. У меня есть несколько пользователей, которые использовали китайские иероглифы в информации своего профиля. Тем не менее, когда я отображаю эту информацию, отображается как æŽå¼·è¯, но они верны в моей базе данных. В настоящее время мой UTF для моих HTML-страниц установлен в UTF-8. Должен ли я изменить его на UTF-16? Я понимаю, что несколько проблем могут возникнуть из-за этого, но каков мой выбор?

Спасибо,

Aaron

Ответы [ 2 ]

21 голосов
/ 05 октября 2010

UTF-8 и UTF-16 кодируют абсолютно одинаковый набор символов.Дело не в том, что UTF-8 не охватывает китайские иероглифы, а UTF-16 делает.UTF-16 равномерно использует 16 бит для представления символа;в то время как UTF-8 использует 1, 2, 3, максимум до 4 байтов, в зависимости от символа, так что символ ASCII представляется еще как 1 байт.Начните с этой статьи в Википедии , чтобы понять суть.

Таким образом, есть небольшой шанс, что переход на UTF-16 вам вообще поможет.Существует вероятность того, что все становится еще хуже, как обсуждалось в SO-вопросе, который вы указали выше.Есть проблема где-то еще в вашей настройке, которая неправильно учитывает символы не ASCII или не Latin-1.Убедитесь, что каждая часть вашей настройки работает в UTF-8.

4 голосов
/ 05 октября 2010

Любая кодировка UTF должна работать одинаково в их способности представлять символы Unicode, поэтому переключение на UTF-16 не поможет. Где-то есть проблема с кодировкой, и с UTF-16 у вас будет только другое неправильное представление HTML. Конечно, если у вас есть библиотека, которая просто кодирует не-ASCII-символы как сущности и поддерживает широкие символы, ваша проблема может быть решена с помощью переключателя. Однако есть символы, которым нужно даже 2 широких символа, и они все равно будут отображаться неправильно, хотя пользователи могут заметить это редко. Лучшим вариантом будет иметь все, что создает HTML, для правильной интерпретации вашего UTF-8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...