В ежедневных работах по развитию мы часто имеем дело с HTML, JavaScript, CSS и другими языками. Как и на реальном языке, компьютерный язык также имеет свой алфавит, грамматику, лексики, методы кодирования и т. Д. Здесь я кратко расскажу о проблемах кодирования, которые часто сталкиваются в ежедневной работе HTML и JavaScript.
На компьютерах информация, которую мы хранят, представлена бинарным кодом. То, что мы знаем о преобразовании символов, таких как английские и китайские символы, отображаемые на экране, и бинарный код, используемый для хранения, - это кодирование.
Есть две основные концепции, которые нужно объяснить: кодирование charset и символов:
Charset, набор символов, то есть таблица отношений сопоставления между символом и числом, то есть, он определяет, что 107 - это «a» Koubei, 21475 - это «рот» из уст в уст, а разные таблицы имеют разные отношения картирования, такие как ASCII, GB2312, Unicode. Благодаря этой таблице сопоставления чисел и символов мы можем преобразовать двоичное представленное число в определенный символ.
Грамтер Кодирование, метод кодирования. Например, для номера 21475, который должен быть «портирован», должны ли мы использовать /u5k3e3 для представления его, или%E5%8f%A3 для его представления? Это определяется кодированием символов.
Для таких струн, как «cuoxin.com», они обычно используют персонажи для американцев. Они сформулировали набор символов, называемый ASCII, причем полное имя - американский стандартный код информации об интерфейсе. 128 номеров 0127 (до 7-й мощности 2, 0 × 00-0 × 7F), представляющие обычно используемые 128 символов, такие как 123ABC. Всего насчитывается 7 бит, и первым является бит знака, который следует использовать для использования обратного кода дополнения для представления отрицательных чисел или чего -то еще. Всего 8 бит для формирования байта. Тогда американцы были немного скупы. Если бы они разработали байт, который составлял 16 битов или 32 бита с самого начала, в мире было бы много проблем. Однако в то время они, вероятно, думали, что 8 бит было достаточно, что может представлять 128 разных персонажей!
Поскольку компьютеры производятся американцами, они самих сами экономят и кодируют все символы, которые они используют, что делает их очень комфортными в использовании. Но когда компьютеры стали интернационализироваться, возникает проблема. Возьмите Китай в качестве примера. Китайские иероглифы всего десятки тысяч. Что я должен делать?
Существующие 8 битов Byte System является основой, ее нельзя уничтожить, ее нельзя изменить на 16 битов или что-то в этом роде, в противном случае изменения будут слишком большими, поэтому вы можете выбрать только другой путь: использовать несколько символов ASCII, чтобы представлять другой символ, то есть MBC (много байтовая система символов, много-байтовая система символов).
С этой концепцией MBCS мы можем представлять больше символов. Например, если мы используем 2 символа ASCII, существует 16 бит, и в теории есть 2 символа в силе 16 65 536 символов. Но как эти кодировки назначаются символам? Например, кодирование Unicode «рта» «рта» - 21475. Кто решил? Набор символов, который является только что представлен. ASCII является самым основным набором символов. Кроме того, у нас есть наборы символов, аналогичные GB2312 и BIG5 для MBCs в упрощенном китайском и традиционном китайском языке и т. Д., Наконец, было учреждение, называемое консорциумом Unicode, который решил создать набор символов (UCS, универсальный набор символов), включая все символы и соответствующий метод кодирования, а также Unicode. С 1991 года он выпустил первое издание международных стандартов Unicode, ISBN 0-321-18578-1, а Международная организация по стандартизации ISO также участвовала в настройке этого, ISO/IEC 10646: универсальный набор символов. Короче говоря, Unicode - это стандарт символов, который в основном охватывает все существующие символы на Земле. Сейчас он используется все более и более широко. Стандарт ECMA также предусматривает, что внутренние символы языка JavaScript используют стандарт Unicode (это означает, что имена переменных JavaScript, имена функций и т. Д. Допускаются на китайском языке!).
Для разработчиков в Китае они могут столкнуться с большим количеством проблем, таких как конверсия между GBK, GB2312 и UTF-8. Строго говоря, это утверждение не очень точное. GBK и GB2312 являются наборами символов (Charsets), в то время как UTF-8 является методом кодирования (кодирование символов), который является методом кодирования наборов символов UCS в стандарте Unicode. Поскольку веб-страницы с использованием наборов символов Unicode в основном кодируются с UTF-8, люди часто собирают их вместе, что на самом деле неточно.
С Unicode, по крайней мере, до того, как человеческая цивилизация столкнулась с инопланетянами, это мастер -ключ, поэтому используйте его. Теперь наиболее широко используемым методом кодирования Unicode является UTF-8 (8-битный формат преобразования UCS/Unicode), который имеет несколько особенно хороших вещей:
Кодирование набора символов UCS, Universal Worldwide
Это метод кодирования символов с переменной длиной, совместим с ASCII
Вторая точка является большим преимуществом, которое делает системы, которые использовали чистый кодирование ASCII, кодирующие ранее, и не добавляют дополнительное хранилище (при условии, что установлен длинный метод кодирования, каждый символ состоит из 2 байтов, тогда пространство для хранения, занятое символами ASCII в настоящее время, будет удвоено).