Потеря работоспособности по Вашему списку:
- "Unicode" не является кодированием, хотя, к сожалению, много документации неточно использует его для обращения к тому, какой бы ни Unicode, кодирующий, который конкретная система использует по умолчанию. В Windows и Java, это часто означает UTF-16; во многих других местах это означает UTF-8. Правильно, Unicode относится к абстрактному символу, принимается, не к какому-то конкретному кодированию.
- UTF-16: 2 байта за "элемент кода". Это - собственный формат строк в.NET, и обычно в Windows и Java. Значения вне Основной многоязычной плоскости (BMP) кодируются как суррогатные пары. Они раньше относительно редко использовались, но теперь много пользовательских приложений должны будут знать о non-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", они имеют в виду "локаль/кодовую страницу по умолчанию для моей системы", которая получена через Кодирование. Значение по умолчанию, и часто является Windows 1252, но может быть другими локалями.
Существует больше на моей странице Unicode и подсказках для отладки проблем Unicode.
Другим большим ресурсом кода является unicode.org, который содержит больше информации, чем Вы будете когда-либо мочь проложить себе путь - возможно, самый полезный бит является кодовыми таблицами.
ответ дан Jon Skeet 23 November 2019 в 00:39
поделиться