Unicode, UTF, ASCII, различия формата ANSI

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

Каким образом они могут помочь программистам?

+269
31 мар. '09 в 6:02
источник поделиться
2 ответа

Снизьте свой список:

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

Там больше на моей странице Юникода и советы по отладке проблем Unicode.

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

+372
31 мар. '09 в 6:15
источник

Связанные вопросы


Похожие вопросы

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

Кстати, ASP.NET не имеет к этому никакого отношения. Кодировки универсальны.

+49
31 мар. '09 в 6:10
источник

Посмотрите другие вопросы по меткам или Задайте вопрос