2010-03-15 2 views

ответ

2

Wikipedia всегда хорошее начало.

Тогда всегда есть Joel Spolsky's article: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!).

Обратите внимание, что три вещи, которые вы называете, действуют на разных уровнях.

  • Unicode представляет собой набор символов: отображение между символами и числами (кодами).
  • UTF7 карты между кодовыми точками и байтами.
  • base64 отображает между байтами и байтами. (Он управляет байтами, чтобы они представлялись байтами в диапазоне ASCII.)
+0

- Хорошая ссылка ссылки и краткое описание каждой концепции. Спасибо – Rise

0

Что касается вашего юникода, base64, utf7 (его никто не использует, это может быть utf8). Они не просто «кодируют & декодирование», но кодируют & декодирование текстовых данных.

Unicode - это способ, которым перечислены все реальные и возможные символы. Он не имеет ничего общего с кодировкой. UTFXX - это набор кодировок Unicode (преобразование кода в фактические байты). Наиболее популярными являются UTF8 и UTF16. В основном UTF8 совместим с ASCII (символы с кодами < 128 представлены так же, как ASCII), но другие символы представлены 2-3 байтами. UTF16 кодирует большинство символов в 2 байта.

Base64 ничего не имеет о текстовых данных. Он кодирует общие двоичные данные в текст, который состоит из 64 печатных символов ascii. Он обычно используется для передачи двоичных данных, UTF8 и UTF16 по электронной почте.

1

Определения кодирования и декодирования: несколько субъективное.

Оба являются формами транслитерации, являясь процессом преобразования из одного алфавита в другой. ASCII - UTF8, ASCII - base64 и т. Д. - все это примеры.

Что отличает их, так это то, что «кодирование» часто используется, если транслитерировать из пригодного для использования формата в формат передачи или промежуточный формат, а декодирование - наоборот. Здесь присутствует «субъективный» бит. ASCII-UTF8 можно рассматривать как кодирование или декодирование в зависимости от контекста.

Другие форматы, такие как base64, используются почти повсеместно только для передачи (например, двоичные данные в электронной почте), и поэтому их преобразование почти универсально называется «кодированием» и конвертируется из «декодирования».

Важным моментом, чтобы убрать все это, является то, что что-то вроде ASCII или UTF8 никоим образом не является магическим. Все эти форматы - это просто согласованное кодирование информации в двоичном формате. Таким образом, ASCII 65 является «А» ни по какой другой причине, кроме стандарта.

Unicode форматы становятся более интересными, потому что они делают различие между кодом точкой и кодированием. Unicode определяет кодовые точки для каждого символа. Бинарные данные различаются для каждого формата кодирования.Например, см. Unicode Character 'EURO-CURRENCY SIGN' (U+20A0), чтобы увидеть все разные двоичные значения для одной кодовой точки.

Смежные вопросы