Кодировка UTF8? - PullRequest
       17

Кодировка UTF8?

0 голосов
/ 02 февраля 2011

Что такое кодировка UTF-8 и почему текстовые файлы, сохраненные в этом формате, больше других?

Например, я набрал «А» в блокноте и сохранил его в формате UTF-8.

После этого размер файла превращается в: 4 байта. почему?

Ответы [ 3 ]

6 голосов
/ 02 февраля 2011

Это почти наверняка, потому что все, что вы используете для сохранения файла, также включает знак порядка байтов , который в UTF-8 равен 0xEF 0xBB 0xBF.

Что касается UTF-8 - это кодировка Unicode, в которой постепенно увеличивается число байтов для более высоких значений Unicode; Важно отметить, что символы ASCII хранятся как отдельные байты (те же байты, что и в ASCII). Таким образом, любой файл ASCII также является файлом UTF-8 с тем же текстом. Эта веб-страница имеет больше, как и Википедия .

2 голосов
/ 02 февраля 2011

это только из-за спецификации, порядка следования байтов. UTF-8 расширяет только символы, числовое значение которых больше 127 (не ASCII).

не все текстовые редакторы делают это. За ним стоит блокнот (бесполезная спецификация UTF-8).

2 голосов
/ 02 февраля 2011

Поскольку в начале файла была вставлена ​​спецификация (метка порядка байтов).

Спецификация - это специальный символ U + FEFF, который не имеет никакого значения, кроме как для определения кодировкифайл.Вы можете прочитать об этом здесь: http://unicode.org/faq/utf_bom.html#BOM

В случае UTF-8 спецификация кодируется как \ xEF \ xBB \ xBF, откуда и берутся 3 дополнительных байта.Блокнот и другие текстовые редакторы ищут спецификацию, чтобы угадать кодировку файла.Если он увидит \ xFF \ xFE, он будет считать, что он закодирован в формате UCS-2 в формате с прямым порядком байтов.\ XFE \ xFF означает UCS-2, закодированный в формате с прямым порядком байтов.

...