Каково различие между наборами символов и кодировкой символов? Когда я говорю, что использую utf-8, кодирующий затем, каков будет мой набор символов? Это берет unicode в качестве набора символов по умолчанию?
Набор символов является синонимом кодировки символов
Кодировка по умолчанию зависит от операционной системы и языкового стандарта .
РЕДАКТИРОВАТЬ http://www.w3.org/TR/REC-xml/#sec-TextDecl
Набор символов определяет соответствие между числами и символами. Почти все наборы символов говорят, что 65 - это A, и в целом соглашаются с отображением чисел до 127. Но у них могут быть разные позиции, когда дело доходит до чисел выше 127.
Существует много наборов символов
Когда вы говорите «кодировка символов», вы имеете в виду, как кодовая точка Unicode (символ) хранится внутри.
Этот пост почти полностью основан на сообщении Джоэла Спольски о Юникоде: Абсолютный минимум Каждый разработчик программного обеспечения должен абсолютно точно знать о Юникоде и наборах символов . Прочтите это, чтобы лучше понять.
UTF-8 - это кодировка набора символов Юникода. Поэтому, если вы используете UTF-8, набор символов - Unicode, но вам вряд ли придется где-либо указывать это отдельно. Другой основной кодировкой Unicode является UTF-16, которая не помещается в потоки 8-битных байтов, поскольку содержит нулевые байты.Если вы имеете дело с Unicode в байтовой последовательности, он обязательно закодирован как UTF-8.
Помимо Unicode, обычно считается, что наборы символов имеют единую фиксированную кодировку, а затем такие термины, как набор символов, кодировка, кодовая страница, кодировка, часто используются взаимозаменяемо или в зависимости от поставщика. Это небрежно, но не создает проблем во время выполнения.
Единственные возможные исключения, о которых я могу думать, - это Восточная Азия: JIS и EUC изначально определили несколько кодировок для одного и того же набора символов, но на практике сегодня каждая кодировка рассматривается отдельно.
Набор символов: определение того, какой символ имеет какую числовую кодовую точку (ascii, jis, unicode)
Кодировка: определение физического представления числовой кодовой точки (utf, ucs, shiftjis)
Согласно терминологии Unicode
Старые протоколы, такие как MI ME используют «кодировку», когда они действительно означают «схему кодировки символов». Первоначально различные кодировки символов рассматривались как независимые репертуары символов, а не как подмножества Unicode.