Skip to content

Пакет UTF8

В этом уроке ты узнаешь о пакете UTF8 и кодировке символов в языках программирования.

Пакет Unicode/utf8 предоставляет несколько полезных функций для запроса и управления строками и []bytes, которые содержат байты UTF8.

Прежде всего, давай поймем разницу между кодировкой UTF8 и ASCII.

Кодировка ASCII против UTF8

В первые дни изобретения языка программирования ученые-компьютерщики чувствовали потребность только в 128 символах, и поэтому они кодировали 128 символов в 1 байте (в основном 7 бит, поскольку начальный 1 бит предназначен только для сигнала).

2^7 = 128

Эта кодировка называлась ASCII (американский стандартный код для обмена информацией).

Пример ASCII:

A (Capital) имеет значение ASCII 65. Двоичное представление A: 1000001

Сейчас мы используем много символов, и многие страны вводят код на своем родном языке, отличном от английского, чем это возможно.

Юникод — это стандарт, который для удобства кодирует почти все символы, используемые в мире. UTF8 (8-битный формат преобразования Unicode), определенный стандартами Unicode, представляет собой кодировку символов, которая кодирует в общей сложности 1 112 064 символа.

UTF8 разработан Кеном Томпсоном и Робом Пайком, которые также являлись разработчиками языка программирования GO. Это ответ на вопрос, использует ли Golang  кодировку UTF8.

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

Другие символы занимают 2-4 байта для кодирования.

Символы занимают от 2 байтов для кодировки UTF8, первому биту предшествует столько единиц, сколько размер кодировки символов и в конце добавляется ноль. Пример.

После этого всем байтам предшествуют 10.

Подробнее узнать о кодировке UTF8 ты можешь по ссылке.

Деванагари (Хинди) Код UTF8

В последующих главах используются примеры на хинди, а также английские Unicodes.

Подробнее узнать о коде Devanagari UTF8 ты можешь по ссылке.