Вопрос

В чем разница между Unicode, UTF8, UTF7, UTF16, UTF32, ASCII, и ANSI кодировки?

Чем это полезно для программистов?

Это было полезно?

Решение

Идем вниз по вашему списку:

  • "Юникод" не является кодировкой, хотя, к сожалению, во многих документах он неточно используется для обозначения кодировки Unicode, используемой по умолчанию в конкретной системе.В Windows и Java это часто означает UTF-16;во многих других местах это означает UTF-8.Собственно, Unicode относится к самому абстрактному набору символов, а не к какой-либо конкретной кодировке.
  • UTF-16:2 байта на «кодовую единицу».Это собственный формат строк в .NET и, как правило, в Windows и Java.Ценности за пределами Базовая многоязычная плоскость (BMP) кодируются как суррогатные пары.(Они используются относительно редко, и это хорошая работа, поскольку, я подозреваю, очень немногие разработчики понимают их правильно.Я очень сомневаюсь, что это так.)
  • UTF-8:Кодирование переменной длины, 1–4 байта на кодовую точку.Значения ASCII кодируются как ASCII с использованием 1 байта.
  • UTF-7:Обычно используется для кодирования почты.Скорее всего, если вы думаете, что вам это нужно, но не занимаетесь почтой, вы ошибаетесь.(Это всего лишь мой опыт, когда люди публикуют сообщения в группах новостей и т. д. За пределами почты это вообще не широко используется.)
  • UTF-32:Кодирование фиксированной ширины с использованием 4 байтов на кодовую точку.Это не очень эффективно, но облегчает жизнь за пределами БМП.У меня есть .NET Utf32String урок как часть моего РазноеUtil библиотеку, если она вам когда-нибудь понадобится.(Заметьте, это не было тщательно проверено.)
  • ASCII:Однобайтовое кодирование с использованием только младших 7 бит.(Кодовые точки Unicode 0–127.) Без акцентов и т. д.
  • АНСИ:Не существует единой фиксированной кодировки ANSI — их много.Обычно, когда люди говорят «ANSI», они имеют в виду «локаль/кодовую страницу по умолчанию для моей системы», которую можно получить через Кодировка.По умолчанию, и часто Windows-1252 но могут быть и другие регионы.

Есть еще кое-что моя страница в Юникоде и советы по устранению проблем с Unicode.

Другой большой ресурс кода — unicode.org который содержит больше информации, чем вы когда-либо сможете проработать. Возможно, наиболее полезным является кодовые таблицы.

Другие советы

Некоторое чтение, которое поможет вам начать работу с кодировками символов: Джоэл о программном обеспечении:Абсолютный минимум, который каждый разработчик программного обеспечения обязательно должен знать о Юникоде и наборах символов (без оправданий!)

Кстати — ASP.NET тут ни при чем.Кодировки универсальны.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top