Я запутался в кодировке текста и кодировке. По многим причинам, я должен изучать не-Unicode, не-UTF8 материал в моей предстоящей работе.
Я нахожу слово «charset» в заголовках писем, как в «ISO-2022-JP», но в текстовых редакторах такой кодировки нет. (Я осмотрел разные текстовые редакторы.)
В чем разница между кодировкой текста и кодировкой? Буду признателен, если вы покажете мне несколько примеров использования.
В основном:
С каждой кодировкой связана определенная кодировка, но для данной кодировки может быть несколько кодировок. Кодировка - это просто набор символов. Существует большое количество кодировок, многие из которых предназначены для определенных скриптов или языков.
Тем не менее, мы находимся в процессе перехода к Unicode, который включает набор символов, способный представлять почти все сценарии мира.Однако для Unicode существует несколько кодировок. Кодировка - это способ отображения строки символов на строку байтов. Примеры кодировок Unicode включают UTF-8 , UTF-16 BE и UTF-16 LE . Каждый из них имеет преимущества для конкретных приложений или архитектур машин.
Набор символов, или репертуар символов, - это просто набор (неупорядоченная коллекция) символов. В кодированном наборе символов каждому символу в репертуаре присваивается целое число ("кодовая точка"). Кодирование - это способ однозначного представления кодовых точек в виде потока байтов.
Я могу пропустить точку здесь, но не является ли следующее представляет собой сильную ссылку на обработчик событий в конструкторе?
_canExecute = canExecute;
-121--1177233- Набор символов - это просто набор; либо содержит, например, знак евро, либо нет. Это все.
Кодировка - это биективное отображение набора символов на набор целых чисел. Если он поддерживает знак евро, он должен присвоить определенное целое число этому символу и никакому другому.
-121--3470592-В дополнение к другим ответам я думаю, что эта статья хорошо прочитана http://www.joelonsoftware.com/articles/Unicode.html
Статья озаглавлена « Абсолютный минимум каждого разработчика программного обеспечения абсолютно, положительно должен знать о Юникоде и наборах символов (без оправданий!) » написана Джоэлом Спольски . Эссе более 10 лет, но (к сожалению) содержание все еще действует...
Погуглил для этого. http://en.wikipedia.org/wiki/Character_encoding
Разница кажется тонкой. Термин charset фактически не применим к Юникоду. Юникод проходит через серию абстракций. абстрактные символы -> кодовые точки -> кодирование кодовых точек в байты.
Наборы символов фактически пропускают это и напрямую переходят от символов к байтам. последовательность байтов <-> последовательность символов
Короче говоря, кодировка : кодовые точки -> байты charset: символы -> байты
Набор символов - это просто набор; он либо содержит, например, знак евро, иначе его нет. Это все.
Кодирование - это взаимно однозначное отображение набора символов в набор целых чисел. Если он поддерживает знак евро, он должен присвоить конкретное целое число этому символу и никакому другому.
Кодировка символов состоит из:
Шаг #1 сам по себе является "репертуаром символов" или абстрактным "набором символов", а #1 + #2 = "кодированный набор символов".
Но до того, как Unicode стал популярным и все (кроме жителей Восточной Азии) использовали однобайтовую кодировку, шаги #3 и #4 были тривиальными (кодовая точка = кодовая единица = байт). Таким образом, в старых протоколах не было четкого различия между "кодировкой символов" и "кодированным набором символов". Старые протоколы используют charset
, когда на самом деле они имеют в виду кодировку.