架构师_程序员_码农网

Имя пользователя Получить пароль
Регистрация

QQ登录

Всего один шаг, чтобы начать

Поиск
Просмотров:1896|Ответов: 1
打印 上一主题 下一主题

Различия между ASCII, ISO8859-1, Unicode, GBK и UTF-8

[скопировать ссылку].
Подъемник прямо к 跳转到指定楼层
владелец
发表于 2022-12-11 14:01:58|只看该作者回帖奖励|Реверсивныйпросмотр|Режим чтения
Зачем нам нужно кодирование?

Наименьшей единицей хранения в компьютере является байт (byte), байт может представлять количество символов и ограничен, 1байт = 8бит, байт может представлять только до 255 символов, а в языках мира и более, существует множество различных символов, не может быть использован для представления байта, поэтому java char для представления символа является решение проблемы кодирования, char приходится два байта, поэтому от char до наименьшей единицы между байтом должны быть закодированы, и наоборот для декодирования, char приходится два байта, поэтому от char до наименьшей единицы между байтом должны быть закодированы. На char приходится два байта, поэтому от char до наименьшей единицы между байтами должно быть закодировано, и наоборот для декодирования.

По сути, кодирование и декодирование - это завершение процесса перевода ("перевод" - так проще его понимать), разновидностью кодирования является словарь.

1, код ASCII

Всем известный как American Standard Code for Information Interchange, Американский стандартный код для обмена информацией, который является наиболее распространенной в мире однобайтовой системой кодирования, в основном используемой для отображения современного английского и других западноевропейских языков.

Код ASCII с 7-битным представлением, может представлять только 128 символов, от 0 до 31 управляющих символов, таких как enter, backspace, delete и т.д.; от 32 до 126 печатных символов, которые могут быть введены через клавиатуру и могут отображать символы, от 48 до 57 для символов от 0 до 9, которые могут быть введены через клавиатуру и могут быть отображены.

Среди них от 48 до 57 для 0-9 десяти арабских цифр, от 65 до 90 для 26 заглавных букв алфавита, от 97 до 122 для 26 строчных букв алфавита, а остальные для некоторых знаков препинания, арифметических символов и т.д., вы можете обратиться к таблице стандарта ASCII.

2、ISO-8859-1

Этот код основан на расширении кода ASCII, но он по-прежнему является однобайтовым, всего 256 символов.

Поскольку ASCII может представлять только 128 символов, отображение не может быть полностью выражено, поэтому ISO-8859-1 расширяет код ASCII, поверх кода ASCII и добавляет западноевропейские языки, греческий, тайский, арабский, иврит, соответствующие текстовые символы, он совместим с кодом ASCII в сторону уменьшения.

3、GB2312

Полное название GB2312 - "Набор китайских кодированных символов информационных технологий", это двухбайтовая кодировка, диапазон кодировки - A1-F7, из которых A1-A9 - область символов, содержащая в общей сложности 682 символа, а B0-F7 - область китайских иероглифов, содержащая 6763 китайских иероглифа.

Полное название - Chinese Character Code Character Set for Information Exchange, который был выпущен Китаем в 1980 году и в основном используется для обработки китайских иероглифов в компьютерных системах. GB2312 в основном содержит 6763 китайских иероглифа и 682 символа.

GB2312 охватывает большую часть китайских иероглифов, но он не может работать с особыми редкими иероглифами, такими как древнекитайский, поэтому такие коды, как GBK и GB18030, появились позже.

4、GBK

Полное название GBK - "Chinese Character Internal Code Extension Specification", который появился для расширения GB2312, его диапазон кодировки - 8140-FEFE (убрать XX7F), всего 23940 кодовых точек, может представлять 21003 китайских иероглифов, и его кодировка совместима с GB2312!

GBK, известная как спецификация китайского внутреннего кода, была разработана в 1995 году. Она в основном расширяет GB2312, добавляя в нее больше китайских иероглифов, и содержит в общей сложности 21003 китайских иероглифа.

GBK обратно совместим с GB2312, то есть китайские иероглифы, закодированные в GB2312, могут быть нормально декодированы в GBK без мусора, а китайские иероглифы, закодированные в GBK, могут быть декодированы в GB2312 без мусора.

5、GB18030

GB18030, известная как спецификация расширения китайского кода, - это новейший набор символов внутреннего кода, выпущенный в 2000 году и введенный в действие в 2001 году, который содержит большинство символов языков этнических меньшинств Китая, включая более 70 000 китайских иероглифов.

В основном используется однобайтовая, двухбайтовая и четырехбайтовая кодировка символов, которая обратно совместима с GB2312 и GBK. Хотя этот стандарт является обязательным в Китае, он редко используется в реальном производстве, и наиболее используемыми являются GBK и GB2312.

6.UNICODE

Для того, чтобы их собственный язык мог правильно отображаться в компьютере, каждая страна и регион имеют свой собственный код, поэтому код больше, кто не знает код друг друга, на этот раз организация ISO выдвинула новый код под названием UNICODE кодировки, так что глобальная культура, символы, символы могут быть поддержаны. UNICODE в развитии компьютерной мощности больше не является проблемой, поэтому дизайн фиксированной два байта, все символы представлены 16 бит, и все символы представлены 16 бит. Все символы представлены 16 битами, включая английские символы, на которые раньше приходилось только 8 бит, так что это приведет к пустой трате места, UNICODE долгое время не был популярен.

7、UTF-16

Появление UTF-16 заключается в том, что ISO хочет создать новый супер-язык словарь, все языки в мире могут быть переведены друг на друга через этот словарь, можно представить, что этот словарь является насколько сложным и огромным. UTF-16 использует два байта для представления формата преобразования Unicode (два байта составляет 16 бит, поэтому необходимо UTF-16), использование фиксированной длины представления метод, то есть любой символ может быть представлен двумя байтами. Представлять символы таким образом очень удобно. Однако есть и недостаток, то есть значительная часть символов с помощью одного байта может быть выражена, в UTF-16 же с помощью двух байт, что приводит к некоторой трате места в памяти. Поэтому появился другой метод кодирования - UTF-8.

UTF-16 является специфической реализацией UNICODE, 16, то есть 16-битной, UTF-16, что является причиной этого, определяет UNICODE хранения символов в компьютере, UTF-16 также использует два байта для представления любого символа, что делает операцию строки символов очень эффективной, что является java UTF-16, как формат символа хранится в памяти важно! Именно по этой причине java использует UTF-16 в качестве формата для хранения символов в памяти.

UTF-16 подходит для использования между диском и памятью, преобразование символов и байтов друг в друга будет более простым и эффективным, но не подходит для передачи по сети, так как передача по сети может повредить поток байтов.

8. UTF-8

UTF-8 использует технологию переменной длины, каждая область кодирования имеет свою длину кода символа, различные типы символов могут состоять из 1-6 байт.

Правила кодирования UTF-8 следующие:

1) Если это 1 байт и старший бит равен 0, это означает, что это 1 символ ASCII. Видно, что все коды ASCII уже являются UTF-8.

2) Если это 1 байт, начиная с 11, то количество последовательных 1 означает количество байт в символе, например: 110xxxxx означает, что это первый байт двухбайтового символа UTF-8.

3) Если это 1 байт, начиная с 10, это означает, что это не первый байт, тогда нужно искать вперед, чтобы получить первый байт текущего символа.

Хотя UTF-16 очень эффективен, но и самый большой минус UNICODE в том, что все однобайтовые символы должны занимать два байта, пространство для хранения увеличивается в два раза, что, очевидно, потребляет ресурсы, не соответствует текущей ситуации быстрого развития Интернета. Поэтому существует UTF-8, который является реализацией кодировки символов переменной длины UNICODE, он может использовать от 1 до 6 байтов фиксированной длины для кодирования символов UNICODE.

UTF-8 использует однобайтовое хранение ASCII-символов, и повреждение одного символа не влияет на следующие за ним, поэтому UTF-8 очень подходит для традиционного использования в Интернете и является одной из наиболее широко используемых кодировок в настоящее время.

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




Предыдущая статья:Проблема слишком большого объема буфера/кэша памяти в Linux
Следующая: Не удается найти файл активов "project.assets.json". Запустите пакет NuGet для восстановления ...
NET, публикуется только в процессе практики, возникли технические трудности, не вводите в заблуждение других.
джонъюн джонъюн
发表于 2022-12-30 14:43:17|只看该作者
Я понял, используйте utf-8
Код фермерской сети, публикуется только в процессе практики, возникли технические трудности, не вводите в заблуждение других.
Вы должны войти в систему, прежде чем сможете отправлять сообщения назад Войти | Зарегистрироваться

Эта версия интегральных правил


DISCLAIMER: Все программное обеспечение, материалы по программированию или статьи, опубликованные Code Farmer, предназначены только для использования в учебных и исследовательских целях; вышеуказанное содержимое не должно использоваться в коммерческих или незаконных целях, в противном случае все последствия будут возложены на самих пользователей. Это сайт информации из сети, спор об авторских правах не имеет никакого отношения к этому сайту. Вы должны полностью удалить вышеуказанное содержимое со своего компьютера в течение 24 часов после загрузки. Если вам понравилась программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшее подлинное обслуживание. Если есть какие-либо нарушения, пожалуйста, свяжитесь с нами по электронной почте, чтобы разобраться с этим.

Почта To:help@itsvse.com

QQ| ( 鲁ICP备14021824号-2)|Sitemap

GMT+8, 2024-9-19 05:23

Быстрый ответНазад к началуНазад к списку