В чем разница между кодировкой и кодировкой?

Я запутался в кодировке текста и кодировке. По многим причинам, я должен изучать не-Unicode, не-UTF8 материал в моей предстоящей работе.

Я нахожу слово «charset» в заголовках писем, как в «ISO-2022-JP», но в текстовых редакторах такой кодировки нет. (Я осмотрел разные текстовые редакторы.)

В чем разница между кодировкой текста и кодировкой? Буду признателен, если вы покажете мне несколько примеров использования.

142
задан TK. 17 February 2010 в 14:55
поделиться

7 ответов

В основном:

  1. кодировка - это набор символов, которые вы можете использовать.
  2. кодировка - это способ сохранения этих символов в памяти
133
ответ дан 23 November 2019 в 23:04
поделиться

С каждой кодировкой связана определенная кодировка, но для данной кодировки может быть несколько кодировок. Кодировка - это просто набор символов. Существует большое количество кодировок, многие из которых предназначены для определенных скриптов или языков.

Тем не менее, мы находимся в процессе перехода к Unicode, который включает набор символов, способный представлять почти все сценарии мира.Однако для Unicode существует несколько кодировок. Кодировка - это способ отображения строки символов на строку байтов. Примеры кодировок Unicode включают UTF-8 , UTF-16 BE и UTF-16 LE . Каждый из них имеет преимущества для конкретных приложений или архитектур машин.

81
ответ дан 23 November 2019 в 23:04
поделиться

Набор символов, или репертуар символов, - это просто набор (неупорядоченная коллекция) символов. В кодированном наборе символов каждому символу в репертуаре присваивается целое число ("кодовая точка"). Кодирование - это способ однозначного представления кодовых точек в виде потока байтов.

11
ответ дан 23 November 2019 в 23:04
поделиться

Я могу пропустить точку здесь, но не является ли следующее представляет собой сильную ссылку на обработчик событий в конструкторе?

    _canExecute = canExecute;           
-121--1177233-

Набор символов - это просто набор; либо содержит, например, знак евро, либо нет. Это все.

Кодировка - это биективное отображение набора символов на набор целых чисел. Если он поддерживает знак евро, он должен присвоить определенное целое число этому символу и никакому другому.

-121--3470592-

В дополнение к другим ответам я думаю, что эта статья хорошо прочитана http://www.joelonsoftware.com/articles/Unicode.html

Статья озаглавлена « Абсолютный минимум каждого разработчика программного обеспечения абсолютно, положительно должен знать о Юникоде и наборах символов (без оправданий!) » написана Джоэлом Спольски . Эссе более 10 лет, но (к сожалению) содержание все еще действует...

45
ответ дан 23 November 2019 в 23:04
поделиться

Погуглил для этого. http://en.wikipedia.org/wiki/Character_encoding

Разница кажется тонкой. Термин charset фактически не применим к Юникоду. Юникод проходит через серию абстракций. абстрактные символы -> кодовые точки -> кодирование кодовых точек в байты.

Наборы символов фактически пропускают это и напрямую переходят от символов к байтам. последовательность байтов <-> последовательность символов

Короче говоря, кодировка : кодовые точки -> байты charset: символы -> байты

6
ответ дан 23 November 2019 в 23:04
поделиться

Набор символов - это просто набор; он либо содержит, например, знак евро, иначе его нет. Это все.

Кодирование - это взаимно однозначное отображение набора символов в набор целых чисел. Если он поддерживает знак евро, он должен присвоить конкретное целое число этому символу и никакому другому.

5
ответ дан 23 November 2019 в 23:04
поделиться

Кодировка символов состоит из:

  1. Набора поддерживаемых символов
  2. Сопоставления между символами и целыми числами ("кодовые точки")
  3. Как кодовые точки кодируются в виде серии "кодовых единиц" (например, 16-битные единицы для UTF-16)
  4. Как кодовые единицы кодируются в байты (например, big-endian или little-endian)

Шаг #1 сам по себе является "репертуаром символов" или абстрактным "набором символов", а #1 + #2 = "кодированный набор символов".

Но до того, как Unicode стал популярным и все (кроме жителей Восточной Азии) использовали однобайтовую кодировку, шаги #3 и #4 были тривиальными (кодовая точка = кодовая единица = байт). Таким образом, в старых протоколах не было четкого различия между "кодировкой символов" и "кодированным набором символов". Старые протоколы используют charset, когда на самом деле они имеют в виду кодировку.

26
ответ дан 23 November 2019 в 23:04
поделиться
Другие вопросы по тегам:

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