Win1251 таблица: Таблицы кодировок ASCII, CP1251 (windows1251), ISO-8859-5 — Микроконтроллеры для всех
Содержание
Таблицы кодировок ASCII, CP1251 (windows1251), ISO-8859-5 — Микроконтроллеры для всех
Таблица ASCII
Таблица ASCII (American standard code for information interchange) является мировым стандартом для кодирования букв английского алфавита, популярных спец символов (! $ # % & и т.д.) и некоторых непечатных символов (например, возврат каретки 0x0D и перенос строки 0х0А).
Таблица создавалась те времена, когда возникла необходимость связать символы и числа. А такое соответствие необходимо было для того что бы с помощью чисел можно было передать текстовое сообщение между разными устройствами с цифровой связью.
Таблица CP1251 (windows-1251)
Эта кодировочная таблица может называться или CP1251 или Windows-1251 Это стандарт кодирования кириллических символов в операционных системах windows с русскоязычным интерфейсом.
Первая часть этой таблицы (до байта 0x7F) повторяет таблицу ASCII, а вторая часть (от 0x80 до 0xFF) кодирует кириллические символы в алфавитном порядке.
CP1251 (windows-1251)
Таблица IS0-8859-5
Эта кодировка применяется в дисплеях Nextion для кодирования кириллических символов.
Стоит обратить внимание, что в данной таблице кириллические символы расположены в алфавитном порядке и сдвинуты ровно на 16 байт по сравнению с кодировочной таблицей windows-1251.
Кодировка UTF-8
(Unicode Transformation Format)
Очень распространенный формат кодирования символов, позволяющий кодировать символы переменным количеством байт.
Например, если для кодирования номера символа требуется 21 бит, то используется 4 байта для кодировки. Если для кодирования достаточно 11 бит, то используют 2 байта. А если номер символа может быть закодирован 7 битами, то используется один байт.
Кодировка UTF-8
Все ASCII символы в кодировке UTF8 закодированы без изменений, то есть 1 байтом, как в стандартной таблице ASCII.
А вот остальные символы закодированы количеством байт от 2 до 4.
Кириллические символы закодированы двумя байтами.
Postgres Pro Standard : Документация: 9.5: 22.3. Поддержка кодировок : Компания Postgres Professional
22.3. Поддержка кодировок
Поддержка кодировок в Postgres Pro позволяет хранить текст в различных кодировках, включая однобайтовые кодировки, такие как входящие в семейство ISO 8859 и многобайтовые кодировки, такие как EUC (Extended Unix Code), UTF-8 и внутренний код Mule. Все поддерживаемые кодировки могут прозрачно использоваться клиентами, но некоторые не поддерживаются сервером (в качестве серверной кодировки). Кодировка по умолчанию выбирается при инициализации кластера базы данных Postgres Pro при помощи initdb
. Она может быть переопределена при создании базы данных, что позволяет иметь несколько баз данных с разными кодировками.
Важным ограничением, однако, является то, что кодировка каждой базы данных должна быть совместима с параметрами локали базы данных LC_CTYPE
(классификация символов) и LC_COLLATE
(порядок сортировки строк). Для локали C
или POSIX
подойдёт любой набор символов, но для других локалей есть только одна кодировка, которая будет работать правильно. (Однако, в среде Windows кодировка UTF-8 может использоваться с любой локалью.)
22.3.1. Поддерживаемые кодировки
Таблица 22.1 показывает кодировки, доступные для использования в Postgres Pro.
Таблица 22.1. Кодировки Postgres Pro
Имя | Описание | Язык | Поддержка на сервере | Байтов на символ | Псевдонимы |
---|---|---|---|---|---|
BIG5 | Big Five | Традиционные китайские иероглифы | Нет | 1-2 | WIN950 , Windows950 |
EUC_CN | Extended UNIX Code-CN | Упрощённые китайские иероглифы | Да | 1-3 | |
EUC_JP | Extended UNIX Code-JP | Японский | Да | 1-3 | |
EUC_JIS_2004 | Extended UNIX Code-JP, JIS X 0213 | Японский | Да | 1-3 | |
EUC_KR | Extended UNIX Code-KR | Корейский | Да | 1-3 | |
EUC_TW | Extended UNIX Code-TW | Традиционные китайские иероглифы, тайваньский | Да | 1-3 | |
GB18030 | Национальный стандарт | Китайский | Нет | 1-4 | |
GBK | Расширенный национальный стандарт | Упрощённые китайские иероглифы | Нет | 1-2 | WIN936 , Windows936 |
ISO_8859_5 | ISO 8859-5, ECMA 113 | Латинский/Кириллица | Да | 1 | |
ISO_8859_6 | ISO 8859-6, ECMA 114 | Латинский/Арабский | Да | 1 | |
ISO_8859_7 | ISO 8859-7, ECMA 118 | Латинский/Греческий | Да | 1 | |
ISO_8859_8 | ISO 8859-8, ECMA 121 | Латинский/Иврит | Да | 1 | |
JOHAB | JOHAB | Корейский (Хангыль) | Нет | 1-3 | |
KOI8R | KOI8-R | Кириллица (Русский) | Да | 1 | KOI8 |
KOI8U | KOI8-U | Кириллица (Украинский) | Да | 1 | |
LATIN1 | ISO 8859-1, ECMA 94 | Западноевропейские | Да | 1 | ISO88591 |
LATIN2 | ISO 8859-2, ECMA 94 | Центральноевропейские | Да | 1 | ISO88592 |
LATIN3 | ISO 8859-3, ECMA 94 | Южноевропейские | Да | 1 | ISO88593 |
LATIN4 | ISO 8859-4, ECMA 94 | Североевропейские | Да | 1 | ISO88594 |
LATIN5 | ISO 8859-9, ECMA 128 | Турецкий | Да | 1 | ISO88599 |
LATIN6 | ISO 8859-10, ECMA 144 | Скандинавские | Да | 1 | ISO885910 |
LATIN7 | ISO 8859-13 | Балтийские | Да | 1 | ISO885913 |
LATIN8 | ISO 8859-14 | Кельтские | Да | 1 | ISO885914 |
LATIN9 | ISO 8859-15 | LATIN1 c европейскими языками и диалектами | Да | 1 | ISO885915 |
LATIN10 | ISO 8859-16, ASRO SR 14111 | Румынский | Да | 1 | ISO885916 |
MULE_INTERNAL | Внутренний код Mule | Мультиязычный редактор Emacs | Да | 1-4 | |
SJIS | Shift JIS | Японский | Нет | 1-2 | Mskanji , ShiftJIS , WIN932 , Windows932 |
SHIFT_JIS_2004 | Shift JIS, JIS X 0213 | Японский | Нет | 1-2 | |
SQL_ASCII | не указан (см. текст) | any | Да | 1 | |
UHC | Унифицированный код Хангыль | Корейский | Нет | 1-2 | WIN949 , Windows949 |
UTF8 | Unicode, 8-bit | все | Да | 1-4 | Unicode |
WIN866 | Windows CP866 | Кириллица | Да | 1 | ALT |
WIN874 | Windows CP874 | Тайский | Да | 1 | |
WIN1250 | Windows CP1250 | Центральноевропейские | Да | 1 | |
WIN1251 | Windows CP1251 | Кириллица | Да | 1 | WIN |
WIN1252 | Windows CP1252 | Западноевропейские | Да | 1 | |
WIN1253 | Windows CP1253 | Греческий | Да | 1 | |
WIN1254 | Windows CP1254 | Турецкий | Да | 1 | |
WIN1255 | Windows CP1255 | Иврит | Да | 1 | |
WIN1256 | Windows CP1256 | Арабский | Да | 1 | |
WIN1257 | Windows CP1257 | Балтийские | Да | 1 | |
WIN1258 | Windows CP1258 | Вьетнамский | Да | 1 | ABC , TCVN , TCVN5712 , VSCII |
Не все клиентские API поддерживают все перечисленные кодировки. Например, драйвер интерфейса JDBC Postgres Pro не поддерживает MULE_INTERNAL
, LATIN6
, LATIN8
и LATIN10
.
Поведение кодировки SQL_ASCII
существенно отличается от других. Когда набором символов сервера является SQL_ASCII
, сервер интерпретирует значения от 0 до 127 байт согласно кодировке ASCII, тогда как значения от 128 до 255 воспринимаются как незначимые. Перекодировка не будет выполнена при выборе SQL_ASCII
. Таким образом, этот вариант является не столько объявлением того, что используется определённая кодировка, сколько объявлением того, что кодировка игнорируется. В большинстве случаев, если вы работаете с любыми данными, отличными от ASCII, не стоит использовать SQL_ASCII
, так как Postgres Pro не сможет преобразовать или проверить символы, отличные от ASCII.
22.3.2. Настройка кодировки
initdb
определяет кодировку по умолчанию для кластера Postgres Pro. Например,
initdb -E EUC_JP
настраивает кодировку по умолчанию на EUC_JP
(Расширенная система кодирования для японского языка). Можно использовать --encoding
вместо -E
в случае предпочтения более длинных имён параметров. Если параметр -E
или --encoding
не задан, initdb
пытается определить подходящую кодировку в зависимости от указанной или заданной по умолчанию локали.
При создании базы данных можно указать кодировку, отличную от заданной по умолчанию, если эта кодировка совместима с выбранной локалью:
createdb -E EUC_KR -T template0 --lc-collate=ko_KR.euckr --lc-ctype=ko_KR.euckr korean
Это создаст базу данных с именем korean
, которая использует кодировку EUC_KR
и локаль ko_KR
. Также, получить желаемый результат можно с помощью данной SQL-команды:
CREATE DATABASE korean WITH ENCODING 'EUC_KR' LC_COLLATE='ko_KR.euckr' LC_CTYPE='ko_KR.euckr' TEMPLATE=template0;
Заметьте, что приведённые выше команды задают копирование базы данных template0
. При копировании любой другой базы данных, параметры локали и кодировку исходной базы изменить нельзя, так как это может привести к искажению данных. Более подробное описание приведено в Разделе 21.3.
Кодировка базы данных хранится в системном каталоге pg_database
. Её можно увидеть при помощи параметра psql
-l
или команды \l
.
$ psql -l
List of databases
Name | Owner | Encoding | Collation | Ctype | Access Privileges
-----------+----------+-----------+-------------+-------------+-------------------------------------
clocaledb | hlinnaka | SQL_ASCII | C | C |
englishdb | hlinnaka | UTF8 | en_GB.UTF8 | en_GB.UTF8 |
japanese | hlinnaka | UTF8 | ja_JP.UTF8 | ja_JP.UTF8 |
korean | hlinnaka | EUC_KR | ko_KR.euckr | ko_KR.euckr |
postgres | hlinnaka | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 |
template0 | hlinnaka | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {=c/hlinnaka,hlinnaka=CTc/hlinnaka}
template1 | hlinnaka | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {=c/hlinnaka,hlinnaka=CTc/hlinnaka}
(7 rows)
Важно
На большинстве современных операционных систем Postgres Pro может определить, какая кодировка подразумевается параметром LC_CTYPE
, что обеспечит использование только соответствующей кодировки базы данных. На более старых системах необходимо самостоятельно следить за тем, чтобы использовалась кодировка, соответствующая выбранной языковой среде. Ошибка в этой области, скорее всего, приведёт к странному поведению зависимых от локали операций, таких как сортировка.
Postgres Pro позволит суперпользователям создавать базы данных с кодировкой SQL_ASCII
, даже когда значение LC_CTYPE
не установлено в C
или POSIX
. Как было сказано выше, SQL_ASCII
не гарантирует, что данные, хранящиеся в базе, имеют определённую кодировку, и таким образом, этот выбор чреват сбоями, связанными с локалью. Использование данной комбинации устарело и, возможно, будет полностью запрещено.
22.3.3. Автоматическая перекодировка между сервером и клиентом
Postgres Pro поддерживает автоматическую перекодировку между сервером и клиентом для определённых комбинаций кодировок. Информация, касающаяся перекодировки, хранится в системном каталоге pg_conversion
. Postgres Pro включает в себя некоторые предопределённые кодировки, как показано в Таблице 22.2. Есть возможность создать новую перекодировку при помощи SQL-команды CREATE CONVERSION
.
Таблица 22.2. Клиент-серверные перекодировки наборов символов
Серверная кодировка | Доступные клиентские кодировки |
---|---|
BIG5 | не поддерживается как серверная кодировка |
EUC_CN | EUC_CN, MULE_INTERNAL , UTF8 |
EUC_JP | EUC_JP, MULE_INTERNAL , SJIS , UTF8 |
EUC_JIS_2004 | EUC_JIS_2004, SHIFT_JIS_2004 , UTF8 |
EUC_KR | EUC_KR, MULE_INTERNAL , UTF8 |
EUC_TW | EUC_TW, BIG5 , MULE_INTERNAL , UTF8 |
GB18030 | не поддерживается как серверная кодировка |
GBK | не поддерживается как серверная кодировка |
ISO_8859_5 | ISO_8859_5, KOI8R , MULE_INTERNAL , UTF8 , WIN866 , WIN1251 |
ISO_8859_6 | ISO_8859_6, UTF8 |
ISO_8859_7 | ISO_8859_7, UTF8 |
ISO_8859_8 | ISO_8859_8, UTF8 |
JOHAB | не поддерживается как серверная кодировка |
KOI8R | KOI8R, ISO_8859_5 , MULE_INTERNAL , UTF8 , WIN866 , WIN1251 |
KOI8U | KOI8U, UTF8 |
LATIN1 | LATIN1, MULE_INTERNAL , UTF8 |
LATIN2 | LATIN2, MULE_INTERNAL , UTF8 , WIN1250 |
LATIN3 | LATIN3, MULE_INTERNAL , UTF8 |
LATIN4 | LATIN4, MULE_INTERNAL , UTF8 |
LATIN5 | LATIN5, UTF8 |
LATIN6 | LATIN6, UTF8 |
LATIN7 | LATIN7, UTF8 |
LATIN8 | LATIN8, UTF8 |
LATIN9 | LATIN9, UTF8 |
LATIN10 | LATIN10, UTF8 |
MULE_INTERNAL | MULE_INTERNAL, BIG5 , EUC_CN , EUC_JP , EUC_KR , EUC_TW , ISO_8859_5 , KOI8R , LATIN1 to LATIN4 , SJIS , WIN866 , WIN1250 , WIN1251 |
SJIS | не поддерживается как серверная кодировка |
SHIFT_JIS_2004 | не поддерживается как серверная кодировка |
SQL_ASCII | любая (перекодировка не будет выполнена) |
UHC | не поддерживается как серверная кодировка |
UTF8 | все поддерживаемые кодировки |
WIN866 | WIN866, ISO_8859_5 , KOI8R , MULE_INTERNAL , UTF8 , WIN1251 |
WIN874 | WIN874, UTF8 |
WIN1250 | WIN1250, LATIN2 , MULE_INTERNAL , UTF8 |
WIN1251 | WIN1251, ISO_8859_5 , KOI8R , MULE_INTERNAL , UTF8 , WIN866 |
WIN1252 | WIN1252, UTF8 |
WIN1253 | WIN1253, UTF8 |
WIN1254 | WIN1254, UTF8 |
WIN1255 | WIN1255, UTF8 |
WIN1256 | WIN1256, UTF8 |
WIN1257 | WIN1257, UTF8 |
WIN1258 | WIN1258, UTF8 |
Чтобы включить автоматическую перекодировку символов, необходимо сообщить Postgres Pro кодировку, которую вы хотели бы использовать на стороне клиента. Это можно выполнить несколькими способами:
Использование команды
\encoding
в psql.\encoding
позволяет оперативно изменять клиентскую кодировку. Например, чтобы изменить кодировку наSJIS
, введите:\encoding SJIS
libpq (Раздел 31.10) имеет функции, для управления клиентской кодировкой.
Использование
SET client_encoding TO
. Клиентская кодировка устанавливается следующей SQL-командой:SET CLIENT_ENCODING TO '
value
';Также, для этой цели можно использовать стандартный синтаксис SQL
SET NAMES
:SET NAMES '
value
';Получить текущую клиентскую кодировку:
SHOW client_encoding;
Вернуть кодировку по умолчанию:
RESET client_encoding;
Использование
PGCLIENTENCODING
. Если установлена переменная окруженияPGCLIENTENCODING
, то эта клиентская кодировка выбирается автоматически при подключении к серверу. (В дальнейшем это может быть переопределено при помощи любого из методов, указанных выше.)Использование переменной конфигурации client_encoding. Если задана переменная
client_encoding
, указанная клиентская кодировка выбирается автоматически при подключении к серверу. (В дальнейшем это может быть переопределено при помощи любого из методов, указанных выше.)
Если перекодировка определённого символа невозможна (предположим, выбраны EUC_JP
для сервера и LATIN1
для клиента, и передаются некоторые японские иероглифы, не представленные в LATIN1
), возникает ошибка.
Если клиентская кодировка определена как SQL_ASCII
, перекодировка отключается вне зависимости от кодировки сервера. Что же касается сервера, не стоит использовать SQL_ASCII
, если только вы не работаете с данными, которые полностью соответствуют ASCII.
22.3.4. Дополнительные источники информации
Рекомендуемые источники для начала изучения различных видов систем кодирования.
- Обработка информации на китайском, японском, корейском & вьетнамском языках.
Содержит подробные объяснения по
EUC_JP
,EUC_CN
,EUC_KR
,EUC_TW
.- http://www.unicode.org/
Сайт Unicode Consortium.
- RFC 3629
UTF-8 (формат преобразования 8-битного UCS/Unicode) определён здесь.
Урок 14. кодирование текстовой информации — Информатика — 10 класс
Информатика, 10 класс. Урок № 14.
Тема — Кодирование текстовой информации
Цели и задачи урока:
— познакомиться со способами кодирования и декодирования текстовой информации с помощью кодовых таблиц и компьютера;
— познакомиться со способом определения информационного объема текстового сообщения;
— познакомиться с алгоритмом Хаффмана.
Вся информация в компьютере хранится в двоичном коде. Поэтому надо научиться преобразовывать символы в двоичный код.
Формула Хартли определяет количество информации в зависимости от количества возможных вариантов:
N=2i, где
N — это количество вариантов,
i — это количество бит, не обходимых для кодирования.
Если же мы преобразуем эту формулу и примем за N — количество символов в используемом алфавите (назовем это мощностью алфавита), то мы поймем, сколько памяти потребуется для кодирования одного символа.
N=2i, где N — кол-во возможных вариантов
i — кол-во бит, потребуемых для кодирования
Итак, если в нашем алфавите будет присутствовать только 32 символа, то каждый из них займет только 5 бит.
И тогда каждому символу мы дадим уникальный двоичный код. Такую таблицу мы будем назвать кодировочной.
Первая широко используемая кодировочная таблица была создана в США и называлась ASCII, что в переводе означало American standard code for information interchange. Как вы видите, в таблице присутствуют не только латинские буквы, но и цифры, и даже действия. Каждому символу отводится 7 бит, а значит, всего было закодировано 128 символов.
Но так как этого количества было недостаточно, стали создаваться другие таблицы, в которых можно было закодировать и другие символы. Например, таблица Windows-1251, которая, по сути, являлась изменением таблицы ASCII, в которую добавили буквы кириллицы. Таких таблиц было создано множество: MS-DOS, КОИ-8, ISO, Mac и другие:
Проблема использования таких различных таблиц приводила к тому, что текст, написанный на одном компьютере, мог некорректно читаться на другом. Например:
Поэтому была разработана международная таблица кодировки Unicode, включающая в себя как символы английского, русского, немецкого, арабского и других языков. На каждый символ в такой таблице отводится 16 бит, то есть она позволяет кодировать 65536 символов. Однако использование такой таблицы сильно «утяжеляет» текст. Поэтому существуют различные алгоритмы неравномерной кодировки текста, например, алгоритм Хаффмана.
АЛГОРИТМ ХАФФМАНА
Идея алгоритма Хаффмана основана на частоте появления символа в последовательности. Символ, который встречается в последовательности чаще всего, получает новый очень маленький код, а символ, который встречается реже всего, получает, наоборот, очень длинный код.
Пусть нам дано сообщение aaabcbeeffaabfffedbac.
Чтобы узнать наиболее выгодный префиксный код для такого сообщения, надо узнать частоту появления каждого символа в сообщении.
Шаг 1.
Подсчитайте и внесите в таблицу частоту появления каждого символа в сообщении:
У вас должно получиться:
Шаг 2.
Расположите буквы в порядке возрастания их частоты.
Шаг 3.
Теперь возьмем два символа с наименьшей чистотой и представим их листьями в дереве, частота которого будет равна сумме частот этих листьев.
Символы d и c превращаются в ветку дерева:
Шаг 4.
Проделываем эти шаги до тех пор, пока не получится дерево, содержащее все символы.
Итак, сортируем таблицу:
Шаг 5.
Объединяем символ e и символ cd в ветку дерева:
d
C
Шаг 6.
Сортируем:
Шаг 7.
Шаг 8.
Сортируем:
Шаг 9.
Шаг 10.
Сортируем:
Шаг 11.
Шаг 12.
Получился префиксный код. Теперь осталось расставить 1 и 0. Пусть каждая правая ветвь обозначает 1, а левая — 0.
Шаг 13.
Составляем код буквы, идя по ветке дерева от буквы к основанию дерева.
Тогда код для каждой буквы будет:
Задание №1
Закодируйте ASCII кодом слово MOSCOW.
Решение:
Составим таблицу и поместим туда слово MOSCOW. Используя таблицу ASCII кодов, закодируем все буквы слова:
M | O | S | C | O | W |
1001101 | 1001111 | 1010011 | 1000011 | 1001111 | 1110111 |
ОТВЕТ: 100110110011111010011100001110011111110111
Задание №2
Используя табличный код Windows1251, закодируйте слово КОМПЬЮТЕР.
Решение:
К | О | М | П | Ь | Ю | Т | Е | Р |
234 | 206 | 204 | 239 | 252 | 254 | 242 | 197 | 208 |
Ответ: 234206204239252254242197208
Задание №3
Используя алгоритма Хаффмана, закодируйте сообщение: Россия
Решение:
Давайте все левые ветви обозначим «1», а правые – «0»
Таким образом: С — 0, Р — 101, О — 100, И — 111, Я — 110
ОТВЕТ: 10110000111110
ASCII таблица / Программирование / stD
ASCII — AmericanStandardCode forInformationInterchange.
ASCII была разработана (1963 год) для кодирования символов, коды которых помещались в 7 бит (128 символов). Со временем кодировка была расширена до 8-ми бит (256 символов), коды первых 128-и символов не изменились.
Управляющие символы ASCII (код символа 0-31)
Первые 32 символа в ASCII-таблице не имеют печатных кодов и используются для управления периферийными устройствами, телетайпами, принтерами и т.д.
DEC | OCT | HEX | BIN | Symbol | HTML Number | HTML Name | Description |
---|---|---|---|---|---|---|---|
0 | 000 | 0x00 | 00000000 | NUL \0 | & #000; | Null char | |
1 | 001 | 0x01 | 00000001 | SOH | & #001; | Start of Heading | |
2 | 002 | 0x02 | 00000010 | STX | & #002; | Start of Text | |
3 | 003 | 0x03 | 00000011 | ETX | & #003; | End of Text | |
4 | 004 | 0x04 | 00000100 | EOT | & #004; | End of Transmission | |
5 | 005 | 0x05 | 00000101 | ENQ | & #005; | Enquiry | |
6 | 006 | 0x06 | 00000110 | ACK | & #006; | Acknowledgment | |
7 | 007 | 0x07 | 00000111 | BEL | & #007; | Bell | |
8 | 010 | 0x08 | 00001000 | BS | & #008; | Back Space | |
9 | 011 | 0x09 | 00001001 | HT \t | & #009; | Tab | |
10 | 012 | 0x0A | 00001010 | LF \n | & #010; | Новая строка | |
11 | 013 | 0x0B | 00001011 | VT | & #011; | Vertical Tab | |
12 | 014 | 0x0C | 00001100 | FF | & #012; | Form Feed | |
13 | 015 | 0x0D | 00001101 | CR \r | & #013; | Возврат каретки | |
14 | 016 | 0x0E | 00001110 | SO | & #014; | Shift Out / X-On | |
15 | 017 | 0x0F | 00001111 | SI | & #015; | Shift In / X-Off | |
16 | 020 | 0x10 | 00010000 | DLE | & #016; | Data Line Escape | |
17 | 021 | 0x11 | 00010001 | DC1 | & #017; | Device Control 1 (oft. XON) | |
18 | 022 | 0x12 | 00010010 | DC2 | & #018; | Device Control 2 | |
19 | 023 | 0x13 | 00010011 | DC3 | & #019; | Device Control 3 (oft. XOFF) | |
20 | 024 | 0x14 | 00010100 | DC4 | & #020; | Device Control 4 | |
21 | 025 | 0x15 | 00010101 | NAK | & #021; | Negative Acknowledgement | |
22 | 026 | 0x16 | 00010110 | SYN | & #022; | Synchronous Idle | |
23 | 027 | 0x17 | 00010111 | ETB | & #023; | End of Transmit Block | |
24 | 030 | 0x18 | 00011000 | CAN | & #024; | Cancel | |
25 | 031 | 0x19 | 00011001 | EM | & #025; | End of Medium | |
26 | 032 | 0x1A | 00011010 | SUB | & #026; | Substitute | |
27 | 033 | 0x1B | 00011011 | ESC | & #027; | Escape | |
28 | 034 | 0x1C | 00011100 | FS | & #028; | File Separator | |
29 | 035 | 0x1D | 00011101 | GS | & #029; | Group Separator | |
30 | 036 | 0x1E | 00011110 | RS | & #030; | Record Separator | |
31 | 037 | 0x1F | 00011111 | US | & #031; | Unit Separator | |
DEC | OCT | HEX | BIN | Symbol | HTML Number | HTML Name | Description |
Печатные символы ASCII (код символа 32-127)
Буквы, цифры, знаки препинания и другие символы расположенные на клавиатуре (англ.).
DEC | OCT | HEX | BIN | Symbol | HTML Number | HTML Name | Description |
---|---|---|---|---|---|---|---|
32 | 040 | 0x20 | 00100000 | & #32; | Space | ||
33 | 041 | 0x21 | 00100001 | ! | & #33; | Exclamation mark | |
34 | 042 | 0x22 | 00100010 | « | & #34; | & quot; | Double quotes (or speech marks) |
35 | 043 | 0x23 | 00100011 | # | & #35; | Number | |
36 | 044 | 0x24 | 00100100 | $ | & #36; | Dollar | |
37 | 045 | 0x25 | 00100101 | % | & #37; | Procenttecken | |
38 | 046 | 0x26 | 00100110 | & | & #38; | & amp; | Ampersand |
39 | 047 | 0x27 | 00100111 | ‘ | & #39; | Single quote | |
40 | 050 | 0x28 | 00101000 | ( | & #40; | Open parenthesis (or open bracket) | |
41 | 051 | 0x29 | 00101001 | ) | & #41; | Close parenthesis (or close bracket) | |
42 | 052 | 0x2A | 00101010 | * | & #42; | Asterisk | |
43 | 053 | 0x2B | 00101011 | + | & #43; | Plus | |
44 | 054 | 0x2C | 00101100 | , | & #44; | Comma | |
45 | 055 | 0x2D | 00101101 | — | & #45; | Hyphen | |
46 | 056 | 0x2E | 00101110 | . | & #46; | Period, dot or full stop | |
47 | 057 | 0x2F | 00101111 | / | & #47; | Slash or divide | |
48 | 060 | 0x30 | 00110000 | 0 | & #48; | Zero | |
49 | 061 | 0x31 | 00110001 | 1 | & #49; | One | |
50 | 062 | 0x32 | 00110010 | 2 | & #50; | Two | |
51 | 063 | 0x33 | 00110011 | 3 | & #51; | Three | |
52 | 064 | 0x34 | 00110100 | 4 | & #52; | Four | |
53 | 065 | 0x35 | 00110101 | 5 | & #53; | Five | |
54 | 066 | 0x36 | 00110110 | 6 | & #54; | Six | |
55 | 067 | 0x37 | 00110111 | 7 | & #55; | Seven | |
56 | 070 | 0x38 | 00111000 | 8 | & #56; | Eight | |
57 | 071 | 0x39 | 00111001 | 9 | & #57; | Nine | |
58 | 072 | 0x3A | 00111010 | : | & #58; | Colon | |
59 | 073 | 0x3B | 00111011 | ; | & #59; | Semicolon | |
60 | 074 | 0x3C | 00111100 | < | & #60; | & lt; | Less than (or open angled bracket) |
61 | 075 | 0x3D | 00111101 | = | & #61; | Equals | |
62 | 076 | 0x3E | 00111110 | > | & #62; | & gt; | Greater than (or close angled bracket) |
63 | 077 | 0x3F | 00111111 | ? | & #63; | Question mark | |
64 | 100 | 0x40 | 01000000 | @ | & #64; | At symbol | |
65 | 101 | 0x41 | 01000001 | A | & #65; | A | |
66 | 102 | 0x42 | 01000010 | B | & #66; | B | |
67 | 103 | 0x43 | 01000011 | C | & #67; | C | |
68 | 104 | 0x44 | 01000100 | D | & #68; | D | |
69 | 105 | 0x45 | 01000101 | E | & #69; | E | |
70 | 106 | 0x46 | 01000110 | F | & #70; | F | |
71 | 107 | 0x47 | 01000111 | G | & #71; | G | |
72 | 110 | 0x48 | 01001000 | H | & #72; | H | |
73 | 111 | 0x49 | 01001001 | I | & #73; | I | |
74 | 112 | 0x4A | 01001010 | J | & #74; | J | |
75 | 113 | 0x4B | 01001011 | K | & #75; | K | |
76 | 114 | 0x4C | 01001100 | L | & #76; | L | |
77 | 115 | 0x4D | 01001101 | M | & #77; | M | |
78 | 116 | 0x4E | 01001110 | N | & #78; | N | |
79 | 117 | 0x4F | 01001111 | O | & #79; | O | |
80 | 120 | 0x50 | 01010000 | P | & #80; | P | |
81 | 121 | 0x51 | 01010001 | Q | & #81; | Q | |
82 | 122 | 0x52 | 01010010 | R | & #82; | R | |
83 | 123 | 0x53 | 01010011 | S | & #83; | S | |
84 | 124 | 0x54 | 01010100 | T | & #84; | T | |
85 | 125 | 0x55 | 01010101 | U | & #85; | U | |
86 | 126 | 0x56 | 01010110 | V | & #86; | V | |
87 | 127 | 0x57 | 01010111 | W | & #87; | W | |
88 | 130 | 0x58 | 01011000 | X | & #88; | X | |
89 | 131 | 0x59 | 01011001 | Y | & #89; | Y | |
90 | 132 | 0x5A | 01011010 | Z | & #90; | Z | |
91 | 133 | 0x5B | 01011011 | [ | & #91; | Opening bracket | |
92 | 134 | 0x5C | 01011100 | \ | & #92; | Backslash | |
93 | 135 | 0x5D | 01011101 | ] | & #93; | Closing bracket | |
94 | 136 | 0x5E | 01011110 | ^ | & #94; | Caret — circumflex | |
95 | 137 | 0x5F | 01011111 | _ | & #95; | Underscore | |
96 | 140 | 0x60 | 01100000 | ` | & #96; | Grave accent | |
97 | 141 | 0x61 | 01100001 | a | & #97; | a | |
98 | 142 | 0x62 | 01100010 | b | & #98; | b | |
99 | 143 | 0x63 | 01100011 | c | & #99; | c | |
100 | 144 | 0x64 | 01100100 | d | & #100; | d | |
101 | 145 | 0x65 | 01100101 | e | & #101; | e | |
102 | 146 | 0x66 | 01100110 | f | & #102; | f | |
103 | 147 | 0x67 | 01100111 | g | & #103; | g | |
104 | 150 | 0x68 | 01101000 | h | & #104; | h | |
105 | 151 | 0x69 | 01101001 | i | & #105; | i | |
106 | 152 | 0x6A | 01101010 | j | & #106; | j | |
107 | 153 | 0x6B | 01101011 | k | & #107; | k | |
108 | 154 | 0x6C | 01101100 | l | & #108; | l | |
109 | 155 | 0x6D | 01101101 | m | & #109; | m | |
110 | 156 | 0x6E | 01101110 | n | & #110; | n | |
111 | 157 | 0x6F | 01101111 | o | & #111; | o | |
112 | 160 | 0x70 | 01110000 | p | & #112; | p | |
113 | 161 | 0x71 | 01110001 | q | & #113; | q | |
114 | 162 | 0x72 | 01110010 | r | & #114; | r | |
115 | 163 | 0x73 | 01110011 | s | & #115; | s | |
116 | 164 | 0x74 | 01110100 | t | & #116; | t | |
117 | 165 | 0x75 | 01110101 | u | & #117; | u | |
118 | 166 | 0x76 | 01110110 | v | & #118; | v | |
119 | 167 | 0x77 | 01110111 | w | & #119; | w | |
120 | 170 | 0x78 | 01111000 | x | & #120; | x | |
121 | 171 | 0x79 | 01111001 | y | & #121; | y | |
122 | 172 | 0x7A | 01111010 | z | & #122; | z | |
123 | 173 | 0x7B | 01111011 | { | & #123; | Opening brace | |
124 | 174 | 0x7C | 01111100 | | | & #124; | Vertical bar | |
125 | 175 | 0x7D | 01111101 | } | & #125; | Closing brace | |
126 | 176 | 0x7E | 01111110 | ~ | & #126; | Equivalency sign — tilde | |
127 | 177 | 0x7F | 01111111 | & #127; | Delete | ||
DEC | OCT | HEX | BIN | Symbol | HTML Number | HTML Name | Description |
Расширенные символы ASCII Win-1251 кириллица (код символа 128-255)
DEC | OCT | HEX | BIN | Symbol |
---|---|---|---|---|
128 | 200 | 0x80 | 10000000 | Ђ |
129 | 201 | 0x81 | 10000001 | Ѓ |
130 | 202 | 0x82 | 10000010 | ‚ |
131 | 203 | 0x83 | 10000011 | ѓ |
132 | 204 | 0x84 | 10000100 | „ |
133 | 205 | 0x85 | 10000101 | … |
134 | 206 | 0x86 | 10000110 | † |
135 | 207 | 0x87 | 10000111 | ‡ |
136 | 210 | 0x88 | 10001000 | € |
137 | 211 | 0x89 | 10001001 | ‰ |
138 | 212 | 0x8A | 10001010 | Љ |
139 | 213 | 0x8B | 10001011 | ‹ |
140 | 214 | 0x8C | 10001100 | Њ |
141 | 215 | 0x8D | 10001101 | Ќ |
142 | 216 | 0x8E | 10001110 | Ћ |
143 | 217 | 0x8F | 10001111 | Џ |
144 | 220 | 0x90 | 10010000 | Ђ |
145 | 221 | 0x91 | 10010001 | ‘ |
146 | 222 | 0x92 | 10010010 | ’ |
147 | 223 | 0x93 | 10010011 | “ |
148 | 224 | 0x94 | 10010100 | ” |
149 | 225 | 0x95 | 10010101 | • |
150 | 226 | 0x96 | 10010110 | – |
151 | 227 | 0x97 | 10010111 | — |
152 | 230 | 0x98 | 10011000 | |
153 | 231 | 0x99 | 10011001 | ™ |
154 | 232 | 0x9A | 10011010 | љ |
155 | 233 | 0x9B | 10011011 | › |
156 | 234 | 0x9C | 10011100 | њ |
157 | 235 | 0x9D | 10011101 | ќ |
158 | 236 | 0x9E | 10011110 | ћ |
159 | 237 | 0x9F | 10011111 | џ |
160 | 240 | 0xA0 | 10100000 | |
161 | 241 | 0xA1 | 10100001 | Ў |
162 | 242 | 0xA2 | 10100010 | ў |
163 | 243 | 0xA3 | 10100011 | Ј |
164 | 244 | 0xA4 | 10100100 | ¤ |
165 | 245 | 0xA5 | 10100101 | Ґ |
166 | 246 | 0xA6 | 10100110 | ¦ |
167 | 247 | 0xA7 | 10100111 | § |
168 | 250 | 0xA8 | 10101000 | Ё |
169 | 251 | 0xA9 | 10101001 | © |
170 | 252 | 0xAA | 10101010 | Є |
171 | 253 | 0xAB | 10101011 | « |
172 | 254 | 0xAC | 10101100 | ¬ |
173 | 255 | 0xAD | 10101101 | |
174 | 256 | 0xAE | 10101110 | ® |
175 | 257 | 0xAF | 10101111 | Ї |
176 | 260 | 0xB0 | 10110000 | ° |
177 | 261 | 0xB1 | 10110001 | ± |
178 | 262 | 0xB2 | 10110010 | І |
179 | 263 | 0xB3 | 10110011 | і |
180 | 264 | 0xB4 | 10110100 | ґ |
181 | 265 | 0xB5 | 10110101 | µ |
182 | 266 | 0xB6 | 10110110 | ¶ |
183 | 267 | 0xB7 | 10110111 | · |
184 | 270 | 0xB8 | 10111000 | ё |
185 | 271 | 0xB9 | 10111001 | № |
186 | 272 | 0xBA | 10111010 | є |
187 | 273 | 0xBB | 10111011 | » |
188 | 274 | 0xBC | 10111100 | ј |
189 | 275 | 0xBD | 10111101 | Ѕ |
190 | 276 | 0xBE | 10111110 | ѕ |
191 | 277 | 0xBF | 10111111 | ї |
192 | 300 | 0xC0 | 11000000 | А |
193 | 301 | 0xC1 | 11000001 | Б |
194 | 302 | 0xC2 | 11000010 | В |
195 | 303 | 0xC3 | 11000011 | Г |
196 | 304 | 0xC4 | 11000100 | Д |
197 | 305 | 0xC5 | 11000101 | Е |
198 | 306 | 0xC6 | 11000110 | Ж |
199 | 307 | 0xC7 | 11000111 | З |
200 | 310 | 0xC8 | 11001000 | И |
201 | 311 | 0xC9 | 11001001 | Й |
202 | 312 | 0xCA | 11001010 | К |
203 | 313 | 0xCB | 11001011 | Л |
204 | 314 | 0xCC | 11001100 | М |
205 | 315 | 0xCD | 11001101 | Н |
206 | 316 | 0xCE | 11001110 | О |
207 | 317 | 0xCF | 11001111 | П |
208 | 320 | 0xD0 | 11010000 | Р |
209 | 321 | 0xD1 | 11010001 | С |
210 | 322 | 0xD2 | 11010010 | Т |
211 | 323 | 0xD3 | 11010011 | У |
212 | 324 | 0xD4 | 11010100 | Ф |
213 | 325 | 0xD5 | 11010101 | Х |
214 | 326 | 0xD6 | 11010110 | Ц |
215 | 327 | 0xD7 | 11010111 | Ч |
216 | 330 | 0xD8 | 11011000 | Ш |
217 | 331 | 0xD9 | 11011001 | Щ |
218 | 332 | 0xDA | 11011010 | Ъ |
219 | 333 | 0xDB | 11011011 | Ы |
220 | 334 | 0xDC | 11011100 | Ь |
221 | 335 | 0xDD | 11011101 | Э |
222 | 336 | 0xDE | 11011110 | Ю |
223 | 337 | 0xDF | 11011111 | Я |
224 | 340 | 0xE0 | 11100000 | а |
225 | 341 | 0xE1 | 11100001 | б |
226 | 342 | 0xE2 | 11100010 | в |
227 | 343 | 0xE3 | 11100011 | г |
228 | 344 | 0xE4 | 11100100 | д |
229 | 345 | 0xE5 | 11100101 | е |
230 | 346 | 0xE6 | 11100110 | ж |
231 | 347 | 0xE7 | 11100111 | з |
232 | 350 | 0xE8 | 11101000 | и |
233 | 351 | 0xE9 | 11101001 | й |
234 | 352 | 0xEA | 11101010 | к |
235 | 353 | 0xEB | 11101011 | л |
236 | 354 | 0xEC | 11101100 | м |
237 | 355 | 0xED | 11101101 | н |
238 | 356 | 0xEE | 11101110 | о |
239 | 357 | 0xEF | 11101111 | п |
240 | 360 | 0xF0 | 11110000 | р |
241 | 361 | 0xF1 | 11110001 | с |
242 | 362 | 0xF2 | 11110010 | т |
243 | 363 | 0xF3 | 11110011 | у |
244 | 364 | 0xF4 | 11110100 | ф |
245 | 365 | 0xF5 | 11110101 | х |
246 | 366 | 0xF6 | 11110110 | ц |
247 | 367 | 0xF7 | 11110111 | ч |
248 | 370 | 0xF8 | 11111000 | ш |
249 | 371 | 0xF9 | 11111001 | щ |
250 | 372 | 0xFA | 11111010 | ъ |
251 | 373 | 0xFB | 11111011 | ы |
252 | 374 | 0xFC | 11111100 | ь |
253 | 375 | 0xFD | 11111101 | э |
254 | 376 | 0xFE | 11111110 | ю |
255 | 377 | 0xFF | 11111111 | я |
DEC | OCT | HEX | BIN | Symbol |
Расширенные символы ASCII Win-1252 (код символа 128-255)
DEC | OCT | HEX | BIN | Symbol |
---|---|---|---|---|
128 | 200 | 0x80 | 10000000 | € |
129 | 201 | 0x81 | 10000001 | |
130 | 202 | 0x82 | 10000010 | ‚ |
131 | 203 | 0x83 | 10000011 | ƒ |
132 | 204 | 0x84 | 10000100 | „ |
133 | 205 | 0x85 | 10000101 | … |
134 | 206 | 0x86 | 10000110 | † |
135 | 207 | 0x87 | 10000111 | ‡ |
136 | 210 | 0x88 | 10001000 | ˆ |
137 | 211 | 0x89 | 10001001 | ‰ |
138 | 212 | 0x8A | 10001010 | Š |
139 | 213 | 0x8B | 10001011 | ‹ |
140 | 214 | 0x8C | 10001100 | Œ |
141 | 215 | 0x8D | 10001101 | |
142 | 216 | 0x8E | 10001110 | Ž |
143 | 217 | 0x8F | 10001111 | |
144 | 220 | 0x90 | 10010000 | |
145 | 221 | 0x91 | 10010001 | ‘ |
146 | 222 | 0x92 | 10010010 | ’ |
147 | 223 | 0x93 | 10010011 | “ |
148 | 224 | 0x94 | 10010100 | ” |
149 | 225 | 0x95 | 10010101 | • |
150 | 226 | 0x96 | 10010110 | – |
151 | 227 | 0x97 | 10010111 | — |
152 | 230 | 0x98 | 10011000 | ˜ |
153 | 231 | 0x99 | 10011001 | ™ |
154 | 232 | 0x9A | 10011010 | š |
155 | 233 | 0x9B | 10011011 | › |
156 | 234 | 0x9C | 10011100 | œ |
157 | 235 | 0x9D | 10011101 | |
158 | 236 | 0x9E | 10011110 | ž |
159 | 237 | 0x9F | 10011111 | Ÿ |
160 | 240 | 0xA0 | 10100000 | |
161 | 241 | 0xA1 | 10100001 | ¡ |
162 | 242 | 0xA2 | 10100010 | ¢ |
163 | 243 | 0xA3 | 10100011 | £ |
164 | 244 | 0xA4 | 10100100 | ¤ |
165 | 245 | 0xA5 | 10100101 | ¥ |
166 | 246 | 0xA6 | 10100110 | ¦ |
167 | 247 | 0xA7 | 10100111 | § |
168 | 250 | 0xA8 | 10101000 | ¨ |
169 | 251 | 0xA9 | 10101001 | © |
170 | 252 | 0xAA | 10101010 | ª |
171 | 253 | 0xAB | 10101011 | « |
172 | 254 | 0xAC | 10101100 | ¬ |
173 | 255 | 0xAD | 10101101 | � |
174 | 256 | 0xAE | 10101110 | ® |
175 | 257 | 0xAF | 10101111 | ¯ |
176 | 260 | 0xB0 | 10110000 | ° |
177 | 261 | 0xB1 | 10110001 | ± |
178 | 262 | 0xB2 | 10110010 | ² |
179 | 263 | 0xB3 | 10110011 | ³ |
180 | 264 | 0xB4 | 10110100 | ´ |
181 | 265 | 0xB5 | 10110101 | µ |
182 | 266 | 0xB6 | 10110110 | ¶ |
183 | 267 | 0xB7 | 10110111 | · |
184 | 270 | 0xB8 | 10111000 | ¸ |
185 | 271 | 0xB9 | 10111001 | ¹ |
186 | 272 | 0xBA | 10111010 | º |
187 | 273 | 0xBB | 10111011 | » |
188 | 274 | 0xBC | 10111100 | ¼ |
189 | 275 | 0xBD | 10111101 | ½ |
190 | 276 | 0xBE | 10111110 | ¾ |
191 | 277 | 0xBF | 10111111 | ¿ |
192 | 300 | 0xC0 | 11000000 | À |
193 | 301 | 0xC1 | 11000001 | Á |
194 | 302 | 0xC2 | 11000010 | Â |
195 | 303 | 0xC3 | 11000011 | Ã |
196 | 304 | 0xC4 | 11000100 | Ä |
197 | 305 | 0xC5 | 11000101 | Å |
198 | 306 | 0xC6 | 11000110 | Æ |
199 | 307 | 0xC7 | 11000111 | Ç |
200 | 310 | 0xC8 | 11001000 | È |
201 | 311 | 0xC9 | 11001001 | É |
202 | 312 | 0xCA | 11001010 | Ê |
203 | 313 | 0xCB | 11001011 | Ë |
204 | 314 | 0xCC | 11001100 | Ì |
205 | 315 | 0xCD | 11001101 | Í |
206 | 316 | 0xCE | 11001110 | Î |
207 | 317 | 0xCF | 11001111 | Ï |
208 | 320 | 0xD0 | 11010000 | Ð |
209 | 321 | 0xD1 | 11010001 | Ñ |
210 | 322 | 0xD2 | 11010010 | Ò |
211 | 323 | 0xD3 | 11010011 | Ó |
212 | 324 | 0xD4 | 11010100 | Ô |
213 | 325 | 0xD5 | 11010101 | Õ |
214 | 326 | 0xD6 | 11010110 | Ö |
215 | 327 | 0xD7 | 11010111 | × |
216 | 330 | 0xD8 | 11011000 | Ø |
217 | 331 | 0xD9 | 11011001 | Ù |
218 | 332 | 0xDA | 11011010 | Ú |
219 | 333 | 0xDB | 11011011 | Û |
220 | 334 | 0xDC | 11011100 | Ü |
221 | 335 | 0xDD | 11011101 | Ý |
222 | 336 | 0xDE | 11011110 | Þ |
223 | 337 | 0xDF | 11011111 | ß |
224 | 340 | 0xE0 | 11100000 | à |
225 | 341 | 0xE1 | 11100001 | á |
226 | 342 | 0xE2 | 11100010 | â |
227 | 343 | 0xE3 | 11100011 | ã |
228 | 344 | 0xE4 | 11100100 | ä |
229 | 345 | 0xE5 | 11100101 | å |
230 | 346 | 0xE6 | 11100110 | æ |
231 | 347 | 0xE7 | 11100111 | ç |
232 | 350 | 0xE8 | 11101000 | è |
233 | 351 | 0xE9 | 11101001 | é |
234 | 352 | 0xEA | 11101010 | ê |
235 | 353 | 0xEB | 11101011 | ë |
236 | 354 | 0xEC | 11101100 | ì |
237 | 355 | 0xED | 11101101 | í |
238 | 356 | 0xEE | 11101110 | î |
239 | 357 | 0xEF | 11101111 | ï |
240 | 360 | 0xF0 | 11110000 | ð |
241 | 361 | 0xF1 | 11110001 | ñ |
242 | 362 | 0xF2 | 11110010 | ò |
243 | 363 | 0xF3 | 11110011 | ó |
244 | 364 | 0xF4 | 11110100 | ô |
245 | 365 | 0xF5 | 11110101 | õ |
246 | 366 | 0xF6 | 11110110 | ö |
247 | 367 | 0xF7 | 11110111 | ÷ |
248 | 370 | 0xF8 | 11111000 | ø |
249 | 371 | 0xF9 | 11111001 | ù |
250 | 372 | 0xFA | 11111010 | ú |
251 | 373 | 0xFB | 11111011 | û |
252 | 374 | 0xFC | 11111100 | ü |
253 | 375 | 0xFD | 11111101 | ý |
254 | 376 | 0xFE | 11111110 | þ |
255 | 377 | 0xFF | 11111111 | ÿ |
DEC | OCT | HEX | BIN | Symbol |
Разрабатывая просмотрщик текста в кодировке Win1251, нативной поддержки которой так не хватает Android-платформе, я поймал себя на мысли, что использую этот класс:
Корни этого класса уходят в далёкий 2005 год, когда некий VMX создавал SieFM. 8 лет прошло, а этот класс еще используется в моих программах. Пора бы отправить его на заслуженный отдых! Напишем собственный класс, который будет поддерживать не только Win1251, но и DOS (CP-866), KOI8-R и еще кучу других кодировок. Поехали! Существует понятие кодовая страница (code page) — это таблица соответствия каждому байту определённого символа. Символов у нас максимум 65536 (в unicode), а байт имеет лишь 255 значений, поэтому как ни крути, а все символы мы в один байт не закинем. Потому то и существуют различные кодировки. И для каждой кодировки существует своя кодовая таблица. Вот класс для Java SE, который создаёт кодовые таблицы для всех поддерживаемых кодировок. Для загрузки файлов из папки assets, нам понадобится класс CharsetLoader Открыть спойлер Закрыть спойлер
Теперь декодировать байт можно вот этой функцией:
К тому же можно выполнить и обратную операцию — закодировать символ в байт:
Открыть спойлер Закрыть спойлер
Пример использования:
Готовые проекты с исходниками: ПоделитьсяДругие статьи автора |
Лабораторная работа № 3. Аддитивные шифры
ЛАБОРАТОРНАЯ РАБОТА № 3. АДДИТИВНЫЕ ШИФРЫ
В аддитивных шифрах используется сложение по модулю (mod) исходного сообщения с гаммой, представленных в числовом виде. Напомним, что результатом сложения двух целых чисел по модулю является остаток от деления (например, 5+10 mod 4 = 15 mod 4 = 3).
В литературе шифры этого класса часто называют потоковыми. Стойкость закрытия этими шифрами определяется, главным образом, качеством гаммы, которое зависит от длины периода и случайности распределения по периоду [1].
Длиною периода гаммы называется минимальное количество символов, после которого последовательность цифр в гамме начинает повторяться. Случайность распределения символов по периоду означает отсутствие закономерностей между появлением различных символов в пределах периода.
По длине периода различаются гаммы с конечным и бесконечным периодом. Если длина периода гаммы превышает длину шифруемого текста, гамма является истинно случайной и не используется для шифрования других сообщений, то такое преобразование является абсолютно стойким (совершенный шифр). Такой шифр нельзя вскрыть на основе статистической обработки шифрограммы.
Сложение по модулю N. В 1888 г. француз маркиз де Виари в одной из своих научных статей, посвященных криптографии, доказал, что при замене букв исходного сообщения и ключа на числа справедливы формулы
Ci = (Pi + Ki) mod N, (4)
Pi = (Ci + N — Ki) mod N, (5)
где Pi, Ci — i-ый символ открытого и шифрованного сообщения;
N — количество символов в алфавите;
Кi — i-ый символ гаммы (ключа). Если длина гаммы меньше, чем длина сообщения, то она используется повторно.
Данные формулы позволяют выполнить зашифрование / расшифрование по Виженеру при замене букв алфавита числами согласно следующей таблице (применительно к русскому алфавиту):
Рис.21. Таблица кодирования символов
Например, для шифрования используется русский алфавит (N = 33), открытое сообщение – «АБРАМОВ», гамма – «ЖУРИХИН». При замене символов на числа буква А будет представлена как 0, Б – 1, …, Я – 32. Результат шифрования показан в следующей таблице.
Таблица 2. Пример аддитивного шифрования по модулю N
Сложение по модулю 2. Является частным случаем предыдущего шифра и используется при шифровании в автоматизированных системах. Символы текста и гаммы представляются в двоичных кодах, а затем каждая пара двоичных разрядов складывается по модулю 2 (, для булевых величин аналог этой операции – XOR, «Исключающее ИЛИ»). Процедуры шифрования и дешифрования выполняются по следующим формулам
Ci = Pi Ki, (6)
Pi = Ci Ki. (7)
Перед иллюстрацией использования шифра приведем таблицу кодов символов Windows 1251 и их двоичное представление.
Таблица 3. Коды символов Windows 1251 и их двоичное представление
Примечание. Dec-код – десятичный код символа, Bin-код – двоичный код символа.
Пример шифрования сообщения «ВОВА» с помощью гаммы «ЮЛЯ» показан в следующей таблице.
Таблица 4. Пример аддитивного шифрования по модулю 2
Задание на лабораторную работу.
В лабораторной работе необходимо зашифровать свою фамилию с помощью шифров гаммирования по модулю N и модулю 2.
При оформлении отчета необходимо привести исходное сообщение (фамилию), гамму и таблицы зашифрования/дешифрования.
1Классический одноразовый шифровальный блокнот — большой неповторяющийся случайный набор символов ключа, написанный на листах бумаги, склеенных в блокнот. Шифровальщик при личной встрече снабжался блокнотом, каждая страница которого содержала ключ. Такой же блокнот имелся и у принимающей стороны. Использованные страницы после однократного использования уничтожились.
ISO-8859-1 | ISO8859-1 | Западно-европейская Latin-1. |
ISO-8859-5 | ISO8859-5 | Редко используемая кириллическая кодировка (Latin/Cyrillic). |
ISO-8859-15 | ISO8859-15 | Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1 (ISO-8859-1). |
UTF-8 | 8-битная Unicode, совместимая с ASCII. | |
cp866 | ibm866, 866 | Кириллическая кодировка, применяемая в DOS. |
cp1251 | Windows-1251, win-1251, 1251 | Кириллическая кодировка, применяемая в Windows. |
cp1252 | Windows-1252, 1252 | Западно-европейская кодировка, применяемая в Windows. |
KOI8-R | koi8-ru, koi8r | Русская кодировка. |
BIG5 | 950 | Традиционный китайский, применяется в основном на Тайване. |
GB2312 | 936 | Упрощённый китайский, стандартная национальная кодировка. |
BIG5-HKSCS | Расширенная Big5, применяемая в Гонконге. | |
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Японская кодировка. |
EUC-JP | EUCJP, eucJP-win | Японская кодировка. |
MacRoman | Кодировка, используемая в Mac OS. | |
'' | Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (см. nl_langinfo() и setlocale()) в указанном порядке. Не рекомендуется к использованию. |
Кодовая страница Windows 1251
Кодовая страница Windows 1251
Эта страница содержит таблицу кодовой страницы Microsoft Windows 1251 для русского и
некоторые другие языки, написанные кириллицей. CP1251
символы включены буквально в скобки слева от каждой строки.
Если вы сохраните эту страницу, у вас будет таблица CP1251, которую вы можете использовать для тестирования вашего
конфигурация набора символов эмулятора терминала.
Кодовая страница Microsoft Windows 1251 char dec col / row oct hex описание [] 128 08/00 200 80 Кирилическая прописная буква DJE [] 129 08/01 201 81 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА GJE [] 130 08/02 202 82 НИЗКАЯ 9 ОДИНОЧНАЯ ЦИТАТА [] 131 08/03 203 83 Кирилическая строчная буква GJE [] 132 08/04 204 84 НИЗКАЯ 9 ДВОЙНАЯ ЦИТАТА [] 133 08/05 205 85 ЭЛЛИПСИС [] 134 08/06 206 86 КИНЖАЛ [] 135 08/07 207 87 ДВОЙНОЙ КИНЖАЛ [] 136 08/08 210 88 ЕВРО ЗНАК [] 137 08/09 211 89 ЗА МИЛ ЗНАК [] 138 08/10 212 8A ЗАГЛАВНАЯ БУКВА LJE [] 139 08/11 213 8B ЛЕВЫЙ КРОНШТЕЙН ОДИНОЧНОЙ ЦИТАТЫ [] 140 08/12 214 8C КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА NJE [] 141 08/13 215 8D КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА KJE [] 142 08/14 216 8E КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА TSHE [] 143 15.08 217 8F КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ДЖЕ [] 144 09/00 220 90 КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА DJE [] 145 09/01 221 91 ВЫСОКАЯ 6 ОДИНОЧНАЯ ЦИТАТА [] 146 09/02 222 92 ВЫСОКАЯ 9 ОДИНОЧНАЯ ЦИТАТА [] 147 09/03 223 93 ВЫСОКАЯ 6 ДВОЙНАЯ ЦИТАТА [] 148 09/04 224 94 ВЫСОКАЯ 9 ДВОЙНАЯ ЦИТАТА [] 149 09/05 225 95 БОЛЬШАЯ ЦЕНТРАЛЬНАЯ ТОЧКА [] 150 09/06 226 96 RU ТИП [] 151 07.09 227 97 EM DASH [] 152 09/08 230 98 (НЕ ОПРЕДЕЛЕННО) [] 153 09/09 231 99 ТОВАРНЫЙ ЗНАК [] 154 09/10 232 9A СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА LJE [] 155 09/11 233 9B ПРАВЫЙ КРОНШТЕЙН ДЛЯ ОДИНОЧНОЙ ЦИТАТЫ [] 156 09/12 234 9C КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА NJE [] 157 09/13 235 9D КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА KJE [] 158 14.09 236 9E КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА TSHE [] 159 15.09 237 9F КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ДЖЕ [] 160 10/00 240 A0 НЕПРЕРЫВНОЕ ПРОСТРАНСТВО [] 161 10/01 241 A1 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА КОРОТКАЯ U [] 162 10/02 242 A2 КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА КОРОТКАЯ U [] 163 10/03 243 A3 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА JE [] 164 10/04 244 ЗНАК ВАЛЮТЫ A4 [] 165 10/05 245 A5 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА GHE С ПОВОРОТОМ [] 166 10/06 246 A6 СЛОМАННЫЙ БАР [] 167 10/07 247 A7 ЗНАК ПАРАГРАФА [] 168 10/08 250 A8 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА IO [] 169 10/09 251 A9 ЗНАК АВТОРСКОГО ПРАВА [] 170 10/10 252 AA КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА УКРАИНСКИЙ IE [] 171 10/11 253 AB ЛЕВЫЙ УГЛОВОЙ ЦИТАТНЫЙ ЗНАК [] 172 10/12 254 AC NOT SIGN [] 173 10/13 255 AD МЯГКИЙ ДЕФИС [] 174 10/14 256 AE ЗНАК ЗАРЕГИСТРИРОВАННОЙ ТОРГОВОЙ МАРКИ [] 175 10/15 257 AF КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА YI [] 176 11/00 260 B0 ЗНАК, КОЛЬЦО ВЫШЕ [] 177 11/01 261 B1 ЗНАК ПЛЮС-МИНУС [] 178 11/02 262 B2 Кирилическая прописная буква БЕЛОРУССИЯ-УКРАИНСКИЙ ЯЗЫК I [] 179 11/03 263 B3 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА БЕЛОРУССИЯ-УКРАИНСКИЙ ЯЗЫК I [] 180 11/04 264 B4 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА GHE С ПОВОРОТОМ [] 181 11/05 265 B5 МИКРОЗНАК [] 182 06/11 266 B6 ЗНАК ПИЛКРОУ [] 183 07/11 267 B7 СРЕДНЯЯ ТОЧКА [] 184 08/11 270 B8 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА IO [] 185 11/09 271 B9 ЗНАК NUMERO [] 186 11/10 272 BA СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА УКРАИНСКИЙ IE [] 187 11/11 273 BB ЦИТАТНЫЙ ЗНАК ПРАВЫЙ УГОЛ [] 188 11/12 274 до н.э. СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА JE. [] 189 11/13 275 BD КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА DZE [] 190 14/11 276 БЫТЬ СТРОЧНОЙ КИРИЛИЧЕСКОЙ БУКВОЙ DZE [] 191 15/11 277 BF КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА YI [] 192 12/00 300 C0 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА A [] 193 01/12 301 C1 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА БЫТЬ [] 194 12/02 302 C2 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА VE [] 195 12/03 303 C3 ЗАГЛАВНАЯ БУКВА GHE [] 196 12/04 304 C4 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА DE [] 197 12/05 305 C5 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА IE [] 198 12/06 306 C6 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ZHE [] 199 12/07 307 C7 ЗАГЛАВНАЯ БУКВА ZE [] 200 12/08 310 C8 ЗАГЛАВНАЯ БУКВА I [] 201 12/09 311 C9 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА КОРОТКАЯ I [] 202 12/10 312 CA КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА KA [] 203 12/11 313 CB КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА EL [] 204 12/12 314 CC КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА EM [] 205 12/13 315 CD КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА EN [] 206 12/14 316 CE КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА O [] 207 15/12 317 CF КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА PE [] 208 13/00 320 D0 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ER [] 209 13/01 321 D1 ЗАГЛАВНАЯ БУКВА ES [] 210 13/02 322 D2 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА TE [] 211 13/03 323 D3 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА U [] 212 13/04 324 D4 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА EF [] 213 13/05 325 D5 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА HA [] 214 13/06 326 D6 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА TSE [] 215 13/07 327 D7 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА CHE [] 216 13/08 330 D8 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА SHA [] 217 13/09 331 D9 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ЩА [] 218 13/10 332 DA КИРИЛЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ЖЕСТКИЙ ЗНАК [] 219 13/11 333 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ДБ ЕРУ [] 220 13/12 334 DC КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА МЯГКИЙ ЗНАК [] 221 13/13 335 DD КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА E [] 222 13/14 336 Кириллическая прописная буква YU [] 223 13/15 337 DF КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА YA [] 224 14/00 340 E0 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА A [] 225 14/01 341 E1 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА BE [] 226 14/02 342 E2 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА VE [] 227 14/03 343 E3 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА GHE [] 228 14/04 344 E4 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА DE [] 229 14/05 345 E5 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА IE [] 230 14/06 346 E6 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ZHE [] 231 14/07 347 E7 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ZE [] 232 14/08 350 E8 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА I [] 233 14/09 351 E9 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА КОРОТКАЯ I [] 234 14/10 352 EA СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА KA [] 235 14/11 353 EB КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА EL [] 236 14/12 354 EC КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА EM [] 237 14/13 355 ED Кирилическая строчная буква EN [] 238 14/14 356 EE СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА O [] 239 14/15 357 EF СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА PE [] 240 15/00 360 F0 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ER [] 241 15/01 361 F1 КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА ES [] 242 15/02 362 F2 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА TE [] 243 15/03 363 F3 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА U [] 244 15/04 364 F4 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА EF [] 245 15/05 365 F5 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА HA [] 246 15/06 366 F6 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА TSE [] 247 15/07 367 F7 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА CHE [] 248 15/08 370 F8 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА CHA [] 249 15/09 371 F9 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ЩА [] 250 15/10 372 FA КИРИЛЛИЧЕСКАЯ СТРОЧНАЯ БУКВА ЖЕСТКИЙ ЗНАК [] 251 15/11 373 FB КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА YERU [] 252 15/12 374 FC КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА МЯГКИЙ ЗНАК [] 253 15/13 375 FD СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА E [] 254 15/14 376 FE СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА YU [] 255 15/15 377 FF СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА YA
Франк да Круз,
Проект Кермит,
Колумбийский университет,
Март 2003 г.
cp1251.txt
cp1251.txt
# # Имя: cp1251 в таблицу Unicode # Версия Unicode: 2.0 # Версия таблицы: 2.01 # Формат таблицы: Формат A # Дата: 15.04.98 # # Контакт: [email protected] # # Общие примечания: нет # # Формат: три столбца, разделенных табуляцией # Столбец №1 - это код cp1251 (в шестнадцатеричном формате). # Столбец # 2 - это Unicode (в шестнадцатеричном виде 0xXXXX) # Столбец # 3 - это имя Unicode (после знака комментария '#') # # Записи в порядке cp1251 # 0x00 0x0000 # ПУСТО 0x01 0x0001 # НАЧАЛО ЗАГОЛОВКИ 0x02 0x0002 # НАЧАЛО ТЕКСТА 0x03 0x0003 # КОНЕЦ ТЕКСТА 0x04 0x0004 # КОНЕЦ ПЕРЕДАЧИ 0x05 0x0005 # ЗАПРОС 0x06 0x0006 # ПОДПИСАТЬСЯ 0x07 0x0007 # БЕЛЛ 0x08 0x0008 #BACKSPACE 0x09 0x0009 # ГОРИЗОНТАЛЬНАЯ ТАБЛИЦА 0x0A 0x000A # ЛИНИЯ ПОДАЧИ 0x0B 0x000B # ВЕРТИКАЛЬНАЯ ТАБЛИЦА 0x0C 0x000C # ФОРМА ПОДАЧИ 0x0D 0x000D # ВОЗВРАТ ЗАРЯДА 0x0E 0x000E # ПЕРЕМЕЩЕНИЕ 0x0F 0x000F #SHIFT IN 0x10 0x0010 # ОТКЛЮЧЕНИЕ СВЯЗИ ДАННЫХ 0x11 0x0011 # УПРАВЛЕНИЕ УСТРОЙСТВОМ ОДИН 0x12 0x0012 # УПРАВЛЕНИЕ УСТРОЙСТВОМ ДВА 0x13 0x0013 # УПРАВЛЕНИЕ УСТРОЙСТВОМ ТРИ 0x14 0x0014 # УПРАВЛЕНИЕ УСТРОЙСТВОМ ЧЕТВЕРТОЕ 0x15 0x0015 # ОТРИЦАТЕЛЬНОЕ ПОДТВЕРЖДЕНИЕ 0x16 0x0016 # СИНХРОННЫЙ ПРОХОЖДЕНИЕ 0x17 0x0017 # КОНЕЦ БЛОКА ПЕРЕДАЧИ 0x18 0x0018 # ОТМЕНА 0x19 0x0019 # КОНЕЦ СРЕДЫ 0x1A 0x001A # ПОДСТАВИТЬ 0x1B 0x001B # ЭСКЕЙП 0x1C 0x001C # РАЗДЕЛИТЕЛЬ ФАЙЛОВ 0x1D 0x001D # СЕПАРАТОР ГРУПП 0x1E 0x001E # ЗАПИСЬ СЕПАРАТОР 0x1F 0x001F # РАЗДЕЛИТЕЛЬ 0x20 0x0020 # ПРОБЕЛ 0x21 0x0021 # восклицательный знак 0x22 0x0022 # ЦИТАТНЫЙ ЗНАК 0x23 0x0023 # НОМЕРНЫЙ ЗНАК 0x24 0x0024 # ЗНАК ДОЛЛАР 0x25 0x0025 ЗНАК # ПЕРЦЕНТ 0x26 0x0026 # АМПЕРСАНД 0x27 0x0027 # АПОСТРОФ 0x28 0x0028 # ЛЕВЫЙ ПАРЕНТЕЗ 0x29 0x0029 # ПРАВИЛЬНЫЙ ПАРЕНТЕЗ 0x2A 0x002A # АСТЕРИСК 0x2B 0x002B # ПОДПИСАТЬСЯ 0x2C 0x002C #COMMA 0x2D 0x002D # ДЕФИС-МИНУС 0x2E 0x002E # ПОЛНАЯ ОСТАНОВКА 0x2F 0x002F # СОЛИДУС 0x30 0x0030 # ЦИФРОВОЙ НУЛЬ 0x31 0x0031 # ЦИФРА ОДИН 0x32 0x0032 # ЦИФРОВОЙ ДВА 0x33 0x0033 # ЦИФРА ТРИ 0x34 0x0034 # ЦИФРА ЧЕТЫРЕ 0x35 0x0035 # ЦИФРОВАЯ ПЯТЬ 0x36 0x0036 # ШЕСТЬ ЦИФРОВ 0x37 0x0037 # ЦИФРОВАЯ СЕМЬ 0x38 0x0038 # ЦИФРА ВОСЕМЬ 0x39 0x0039 # ЦИФРА ДЕВЯТЬ 0x3A 0x003A # КОЛОН 0x3B 0x003B # СЕМИКОЛОН 0x3C 0x003C # МЕНЬШЕ ЗНАКА 0x3D 0x003D # ЗНАК РАВНО 0x3E 0x003E # БОЛЬШЕ, ЧЕМ ЗНАК 0x3F 0x003F # ВОПРОСНАЯ МЕТКА 0x40 0x0040 # КОММЕРЧЕСКИЙ AT 0x41 0x0041 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА A 0x42 0x0042 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА B 0x43 0x0043 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА C 0x44 0x0044 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА D 0x45 0x0045 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА E 0x46 0x0046 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА F 0x47 0x0047 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА G 0x48 0x0048 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА H 0x49 0x0049 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА I 0x4A 0x004A # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА J 0x4B 0x004B # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА K 0x4C 0x004C # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА L 0x4D 0x004D # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА M 0x4E 0x004E # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА N 0x4F 0x004F # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА O 0x50 0x0050 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА P 0x51 0x0051 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА Q 0x52 0x0052 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА R 0x53 0x0053 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА S 0x54 0x0054 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА T 0x55 0x0055 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА U 0x56 0x0056 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА V 0x57 0x0057 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА W 0x58 0x0058 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА X 0x59 0x0059 # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА Y 0x5A 0x005A # ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА Z 0x5B 0x005B # КВАДРАТНЫЙ КРОНШТЕЙН ЛЕВЫЙ 0x5C 0x005C # ОБРАТНЫЙ СОЛИД 0x5D 0x005D # ПРАВЫЙ КВАДРАТНЫЙ КРОНШТЕЙН 0x5E 0x005E #CIRCUMFLEX ACCENT 0x5F 0x005F # НИЗКАЯ СТРОКА 0x60 0x0060 # GRAVE ACCENT 0x61 0x0061 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА A 0x62 0x0062 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА B 0x63 0x0063 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА C 0x64 0x0064 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА D 0x65 0x0065 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА E 0x66 0x0066 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА F 0x67 0x0067 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА G 0x68 0x0068 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА H 0x69 0x0069 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА I 0x6A 0x006A # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА J 0x6B 0x006B # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА K 0x6C 0x006C # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА L 0x6D 0x006D # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА M 0x6E 0x006E # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА N 0x6F 0x006F # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА O 0x70 0x0070 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА P 0x71 0x0071 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА Q 0x72 0x0072 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА R 0x73 0x0073 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА S 0x74 0x0074 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА T 0x75 0x0075 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА U 0x76 0x0076 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА V 0x77 0x0077 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА W 0x78 0x0078 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА X 0x79 0x0079 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА Y 0x7A 0x007A # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА Z 0x7B 0x007B # ЛЕВАЯ КУРСОВАЯ КРОНШТЕЙН 0x7C 0x007C # ВЕРТИКАЛЬНАЯ ЛИНИЯ 0x7D 0x007D # ПРАВЫЙ ИЗГОЛЬНЫЙ КРОНШТЕЙН 0x7E 0x007E # ТИЛЬДА 0x7F 0x007F # УДАЛИТЬ 0x80 0x0402 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА DJE 0x81 0x0403 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА GJE 0x82 0x201A # ОДИН ЦИТАТНЫЙ МАРК НИЗКОГО-9 0x83 0x0453 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА GJE 0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK 0x85 0x2026 # ГОРИЗОНТАЛЬНЫЙ ЭЛЛИПСИС 0x86 0x2020 # КИНЖАЛ 0x87 0x2021 # ДВОЙНОЙ КИНЖАЛ 0x88 0x20AC # ЗНАК ЕВРО 0x89 0x2030 # ЗАПИСЬ МИЛЛЯ 0x8A 0x0409 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА LJE 0x8B 0x2039 # ОДИН ЛЕВЫЙ УГОЛ ЦИТАТЫ 0x8C 0x040A # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА NJE 0x8D 0x040C # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА KJE 0x8E 0x040B # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА TSHE 0x8F 0x040F # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ДЖЕ 0x90 0x0452 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА DJE 0x91 0x2018 # ЛЕВАЯ ОДИНАРНАЯ ЦИТАТА 0x92 0x2019 # ОДИНАРНЫЙ ЗНАК ЦИТАТЫ 0x93 0x201C # ЛЕВАЯ МАРКА ДВОЙНОЙ ЦИТАТЫ 0x94 0x201D # ПРАВАЯ ДВОЙНАЯ ЦИТАТА 0x95 0x2022 # БЮЛЛЕТЕНЬ 0x96 0x2013 #EN DASH 0x97 0x2014 #EM DASH 0x98 # НЕОПРЕДЕЛЕННО 0x99 0x2122 # ТОВАРНЫЙ ЗНАК 0x9A 0x0459 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА LJE 0x9B 0x203A # ОДИН УГОЛ ВПРАВО ЦИТАТНЫЙ МАРК 0x9C 0x045A # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА NJE 0x9D 0x045C # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА KJE 0x9E 0x045B # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА TSHE 0x9F 0x045F # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ДЖЕ 0xA0 0x00A0 # ПРОБЕЛ БЕЗ ПЕРЕРЫВА 0xA1 0x040E # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА КОРОТКАЯ U 0xA2 0x045E # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА КОРОТКАЯ U 0xA3 0x0408 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА JE 0xA4 0x00A4 # ЗНАК ВАЛЮТЫ 0xA5 0x0490 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА GHE С ПОВОРОТОМ 0xA6 0x00A6 # Сломанная полоса 0xA7 0x00A7 # ЗНАК РАЗДЕЛА 0xA8 0x0401 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА IO 0xA9 0x00A9 # ЗНАК АВТОРСКОГО ПРАВА 0xAA 0x0404 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА УКРАИНСКИЙ IE 0xAB 0x00AB # ДВОЙНОЙ УГЛОВОЙ ЦИТАТНЫЙ МАРК, УКАЗАННЫЙ ВЛЕВО 0xAC 0x00AC # БЕЗ ЗНАКА 0xAD 0x00AD # МЯГКИЙ ДЕФИС 0xAE 0x00AE # ЗАПИСАННЫЙ ЗНАК 0xAF 0x0407 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА YI 0xB0 0x00B0 # ЗНАК СТЕПЕНИ 0xB1 0x00B1 # ЗНАК ПЛЮС-МИНУС 0xB2 0x0406 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА БЕЛОРУССКО-УКРАИНСКАЯ I 0xB3 0x0456 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА БЕЛОРУССКО-УКРАИНСКАЯ I 0xB4 0x0491 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА GHE С ПОВОРОТОМ 0xB5 0x00B5 # ЗНАК МИКРО 0xB6 0x00B6 # ЗНАК ПИЛКРОУ 0xB7 0x00B7 # СРЕДНЯЯ ТОЧКА 0xB8 0x0451 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА IO 0xB9 0x2116 # ЗНАК ЧИСЛА 0xBA 0x0454 # КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА УКРАИНСКИЙ IE 0xBB 0x00BB # ДВОЙНОЙ УГОЛ ЦИТАТЫ, УКАЗАННЫЙ ВПРАВО 0xBC 0x0458 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА JE 0xBD 0x0405 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА DZE 0xBE 0x0455 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА DZE 0xBF 0x0457 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА YI 0xC0 0x0410 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА A 0xC1 0x0411 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА BE 0xC2 0x0412 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА VE 0xC3 0x0413 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА GHE 0xC4 0x0414 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА DE 0xC5 0x0415 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА IE 0xC6 0x0416 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ZHE 0xC7 0x0417 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ZE 0xC8 0x0418 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА I 0xC9 0x0419 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА КОРОТКАЯ I 0xCA 0x041A # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА KA 0xCB 0x041B # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА EL 0xCC 0x041C # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА EM 0xCD 0x041D # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА EN 0xCE 0x041E # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА O 0xCF 0x041F # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА PE 0xD0 0x0420 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ER 0xD1 0x0421 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ES 0xD2 0x0422 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА TE 0xD3 0x0423 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА U 0xD4 0x0424 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА EF 0xD5 0x0425 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА HA 0xD6 0x0426 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА TSE 0xD7 0x0427 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА CHE 0xD8 0x0428 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА SHA 0xD9 0x0429 # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ЩА 0xDA 0x042A # КИРИЛЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ЖЕСТКИЙ ЗНАК 0xDB 0x042B # КИРИЛЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ЙЕРУ 0xDC 0x042C # КИРИЛЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА МЯГКИЙ ЗНАК 0xDD 0x042D # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА E 0xDE 0x042E # КИРИЛЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА YU 0xDF 0x042F # КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА YA 0xE0 0x0430 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА A 0xE1 0x0431 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА BE 0xE2 0x0432 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА VE 0xE3 0x0433 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА GHE 0xE4 0x0434 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА DE 0xE5 0x0435 # КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА IE 0xE6 0x0436 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ZHE 0xE7 0x0437 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ZE 0xE8 0x0438 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА I 0xE9 0x0439 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА КОРОТКАЯ I 0xEA 0x043A # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА KA 0xEB 0x043B # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА EL 0xEC 0x043C # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА EM 0xED 0x043D # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА EN 0xEE 0x043E # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА O 0xEF 0x043F # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА PE 0xF0 0x0440 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ER 0xF1 0x0441 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ES 0xF2 0x0442 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА TE 0xF3 0x0443 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА U 0xF4 0x0444 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА EF 0xF5 0x0445 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА HA 0xF6 0x0446 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА TSE 0xF7 0x0447 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА CHE 0xF8 0x0448 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА SHA 0xF9 0x0449 # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ЩА 0xFA 0x044A # КИРИЛЛИЧЕСКАЯ СТРОЧНАЯ БУКВА ЖЕСТКИЙ ЗНАК 0xFB 0x044B # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ЕРУ 0xFC 0x044C # КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА МЯГКИЙ ЗНАК 0xFD 0x044D # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА E 0xFE 0x044E # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА YU 0xFF 0x044F # СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА YA
Модуль ngx_http_charset_module
Модуль ngx_http_charset_module
Модуль ngx_http_charset_module
добавляет указанный
charset в поле заголовка ответа Content-Type.Кроме того, модуль может конвертировать данные из одной кодировки в другую,
с некоторыми ограничениями:
- конвертация осуществляется в одну сторону — от сервера к клиенту,
- могут быть преобразованы только однобайтовые кодировки
- или однобайтовые кодировки в / из UTF-8.
Пример конфигурации
включить conf / koi-win; кодировка windows-1251; source_charset koi8-r;
Директивы
Синтаксис: | кодировка |
---|---|
По умолчанию: | charset off; |
Контекст: | http , сервер , местоположение , если в местоположении |
Добавляет указанную кодировку в Content-Type.
поле заголовка ответа.Если эта кодировка отличается от указанной
в директиве source_charset выполняется преобразование.
Параметр off
отменяет добавление кодировки.
в поле заголовка ответа Content-Type.
Кодировку можно определить с помощью переменной:
charset $ charset;
В таком случае должны присутствовать все возможные значения переменной.
в конфигурации хотя бы один раз в виде
charset_map, charset или
source_charset директивы.Для utf-8
, windows-1251
и
koi8-r
charsets, достаточно включить файлы
conf / koi-win
, conf / koi-utf
и
conf / win-utf
в конфигурацию.
Для других наборов символов, просто создание фиктивной таблицы преобразования работает,
Например:
charset_map iso-8859-5 _ {}
Кроме того, кодировку можно установить в
Поле заголовка ответа «X-Accel-Charset».
Эту возможность можно отключить с помощью
proxy_ignore_headers,
fastcgi_ignore_headers,
uwsgi_ignore_headers,
scgi_ignore_headers,
а также
grpc_ignore_headers
директивы.
Синтаксис: | charset_map |
---|---|
По умолчанию: | — |
Контекст: | http |
Описывает таблицу преобразования из одной кодировки в другую.Таблица обратного преобразования строится с использованием тех же данных.
Коды символов даны в шестнадцатеричном формате.
Отсутствующие символы в диапазоне 80-FF заменяются на «?
».
При преобразовании из UTF-8 символы отсутствуют в однобайтовой кодировке.
заменяются на « & # XXXX;
».
Пример:
charset_map koi8-r windows-1251 { C0 FE; # маленький ю C1 E0; # маленький а C2 E1; # маленький б C3 F6; # small ts ... }
При описании таблицы преобразования в UTF-8 коды для кодировки UTF-8 должны
быть приведенным во втором столбце, например:
charset_map koi8-r utf-8 { C0 D18E; # маленький ю C1 D0B0; # маленький а C2 D0B1; # маленький б C3 D186; # small ts ... }
Полные таблицы преобразования с koi8-r
на
windows-1251
, а от koi8-r
и
окна-1251
до utf-8
представлены в файлах раздачи conf / koi-win
,
conf / koi-utf
и conf / win-utf
.
Синтаксис: | charset_types |
---|---|
По умолчанию: | charset_types текст / HTML текст / XML текст / простой текст / vnd.wap.wml приложение / javascript приложение / rss + xml; |
Контекст: | http , сервер , расположение |
Эта директива появилась в версии 0.7.9.
Включает обработку модуля в ответах с указанными типами MIME
в дополнение к « текст / html
».
Специальное значение « *
» соответствует любому типу MIME (0.8.29).
До версии 1.5.4 использовалось «
application / x-javascript
».
в качестве типа MIME по умолчанию вместо «application / javascript
».
Синтаксис: | override_charset |
---|---|
По умолчанию: | override_charset off; |
Контекст: | http , сервер , местоположение , если в местоположении |
Определяет, нужно ли выполнять преобразование ответов
получено от прокси-сервера или сервера FastCGI / uwsgi / SCGI / gRPC
когда ответы уже содержат кодировку в «Content-Type»
поле заголовка ответа.Если преобразование включено, кодировка указана в полученном
ответ используется как кодировка источника.
Следует отметить, что если ответ получен в подзапросе
затем преобразование из кодировки ответа в кодировку основного запроса
выполняется всегда, независимо отoverride_charset
установка директивы.
Синтаксис: | source_charset |
---|---|
По умолчанию: | — |
Контекст: | http , сервер , местоположение , если в местоположении |
Определяет исходную кодировку ответа.Если эта кодировка отличается от указанной
в директиве charset выполняется преобразование.
Кодирование
в MySQL | ISPserver
Кодировка MySQL
Проблемы с кодировкой MySQL могут возникать для версий 4.1 и более поздних версий, поскольку они имеют возможность устанавливать различную кодировку для разных уровней иерархии базы данных (сервер, база данных, таблица, столбец) и для отдельных соединений между сервером и клиентом. MySQL имеет кодировку latin1 по умолчанию на всех уровнях.
Кодировка, включая данные на сервере MySQL, должна соответствовать кодировке самих данных. Например, для русских символов используется кодировка cp1251. Если в таблице есть записи с русскими символами, кодировка таблицы должна быть установлена как cp1251, иначе вместо русских символов будут отображаться вопросительные знаки или другие символы.
При создании базы данных укажите кодировку для хранения символов сразу, иначе будет использоваться значение по умолчанию (latin1).Например, создайте базу данных с помощью команды:
создать базу данных `my-db` кодировку по умолчанию cp1251;
Кодировка соединения сервера с клиентом определяет формат данных, которые будут передаваться между двумя объектами. Например, если в сценарии веб-сайта используются русские символы, MySQL должен правильно распознавать символы, когда веб-сайт обращается к базе данных, для правильного выполнения сценария. Если в кодировке соединения используется latin1 по умолчанию, сервер не сможет правильно распознать русские символы, и скрипт выдаст ошибку.
Установите желаемую кодировку подключения сразу после подключения к серверу MySQL, используя следующий запрос:
установить имена cp1251
Существует ряд клиентов, которые не могут установить необходимую кодировку и поэтому используют свою собственную. В таких случаях укажите в файле my.cnf в разделе [mysqld] следующую строку:
set init_connect = "установить имена cp1251" где cp1251 - необходимое кодирование.
В этом случае сервер запустит команду «set names cp1251» сразу после подключения к клиенту и установит кодировку, указанную в запросе.
Самые распространенные русские кодировки следующие:
utf8, cp866 (DOS), cp1251 (Windows), koi8r
Установка и использование одинаковой кодировки для серверов баз данных на всех уровнях помогает устранить 90% проблем с кодировкой в MySQL.
Как добавить в MySQL поддержку русского языка?
Введите следующие изменения в файл my.cnf:
[клиент] набор символов по умолчанию = cp1251 [mysqld] набор символов-сервер = cp1251 collation-server = cp1251_general_ci init-connect = "установить имена cp1251"
Перезапустите сервер MySQL.
BIG5 | не поддерживается в качестве кодировки сервера |
EUC_CN | EUC_CN, MULE_INTERNAL, UTF8 |
EUC_JP | EUC_JP, MULE_INTERNAL, SJIS, UTF8 |
EUC_KR | EUC_KR, MULE_INTERNAL, UTF8 |
EUC_TW | EUC_TW, BIG5, MULE_INTERNAL, UTF8 |
ГБ18030 | не поддерживается в качестве кодировки сервера |
ГБК | не поддерживается в качестве кодировки сервера |
ISO_8859_5 | ISO_8859_5, KOI8, MULE_INTERNAL, UTF8, WIN866, WIN1251 |
ISO_8859_6 | ISO_8859_6, UTF8 |
ISO_8859_7 | ISO_8859_7, UTF8 |
ISO_8859_8 | ISO_8859_8, UTF8 |
JOHAB | JOHAB, UTF8 |
КОИ8 | KOI8, ISO_8859_5, MULE_INTERNAL, UTF8, WIN866, WIN1251 |
ЛАТИН 1 | LATIN1, MULE_INTERNAL, UTF8 |
ЛАТИН 2 | LATIN2, MULE_INTERNAL, UTF8, WIN1250 |
ЛАТИН 3 | LATIN3, MULE_INTERNAL, UTF8 |
ЛАТИН 4 | LATIN4, MULE_INTERNAL, UTF8 |
LATIN5 | LATIN5, UTF8 |
LATIN6 | LATIN6, UTF8 |
LATIN7 | LATIN7, UTF8 |
LATIN8 | LATIN8, UTF8 |
ЛАТИН 9 | LATIN9, UTF8 |
ЛАТИН 10 | LATIN10, UTF8 |
MULE_INTERNAL | MULE_INTERNAL, BIG5, EUC_CN, EUC_JP, EUC_KR, EUC_TW, ISO_8859_5, KOI8, от LATIN1 до LATIN4, SJIS, WIN866, WIN1250, WIN1251 |
SJIS | не поддерживается в качестве кодировки сервера |
SQL_ASCII | не поддерживается в качестве кодировки сервера |
UHC | не поддерживается в качестве кодировки сервера |
UTF8 | все поддерживаемые кодировки |
WIN866 | WIN866 |
ISO_8859_5 | KOI8, MULE_INTERNAL, UTF8, WIN1251 |
WIN874 | WIN874, UTF8 |
WIN1250 | WIN1250, LATIN2, MULE_INTERNAL, UTF8 |
WIN1251 | WIN1251, ISO_8859_5, KOI8, MULE_INTERNAL, UTF8, WIN866 |
WIN1252 | WIN1252, UTF8 |
WIN1253 | WIN1253, UTF8 |
WIN1254 | WIN1254, UTF8 |
WIN1255 | WIN1255, UTF8 |
WIN1256 | WIN1256, UTF8 |
WIN1257 | WIN1257, UTF8 |
WIN1258 | WIN1258, UTF8 |
Самая продвинутая в мире реляционная база данных с открытым исходным кодом
Поддержка набора символов в
PostgreSQL
позволяет хранить текст в различных наборах символов (также называемых
кодировки), в том числе
однобайтовые наборы символов, такие как серия ISO 8859 и
многобайтовые наборы символов, такие как
EUC
(Расширенный Unix
Code), UTF-8 и внутренний код Mule.Все поддерживаемые наборы символов
могут прозрачно использоваться клиентами, но некоторые из них не поддерживаются
для использования на сервере (то есть как кодирование на стороне сервера).
Набор символов по умолчанию выбран, пока
инициализация вашего
PostgreSQL
база данных
кластер с использованием
initdb
. Это может быть отменено, когда вы
создать базу данных, чтобы у вас было несколько
базы данных, каждая из которых имеет свой набор символов.
Однако важным ограничением является то, что набор символов каждой базы данных
должен быть совместим с базой данных
LC_CTYPE
(персонаж
классификация) и
LC_COLLATE
(порядок сортировки строк) локаль
настройки.Для
C
или же
POSIX
языковой стандарт, разрешен любой набор символов, но для других
Локали, предоставляемые libc, есть только один набор символов, который будет работать
правильно.
(Однако в Windows кодировку UTF-8 можно использовать с любой локалью.)
Если у вас настроена поддержка ICU, можно использовать локали, предоставленные ICU.
с большинством, но не со всеми кодировками на стороне сервера.
23.3.1. Поддерживаемые наборы символов
Таблица 23.1
показывает доступные наборы символов
для использования в
PostgreSQL
.
Таблица 23.1.
PostgreSQL
Наборы символов
Имя | Описание | Язык | Сервер? | ICU? | Байт / символ | Псевдонимы |
---|---|---|---|---|---|---|
| Большая Пятерка | Традиционный китайский | Нет | Нет | 1-2 |
,
|
| Расширенный код UNIX-CN | Упрощенный китайский | да | да | 1–3 | |
| Расширенный код UNIX-JP | Японский | да | да | 1–3 | |
| Расширенный код UNIX-JP, JIS X 0213 | Японский | да | Нет | 1–3 | |
| Расширенный код UNIX-KR | Корейский | да | да | 1–3 | |
| Расширенный код UNIX-TW | Традиционный китайский, тайваньский | да | да | 1–3 | |
| Национальный стандарт | китайский язык | Нет | Нет | 1–4 | |
| Расширенный национальный стандарт | Упрощенный китайский | Нет | Нет | 1-2 |
,
|
| ISO 8859-5, ECMA 113 | Латиница / кириллица | да | да | 1 | |
| ISO 8859-6, ECMA 114 | Латинский / арабский | да | да | 1 | |
| ISO 8859-7, ECMA 118 | Латинский / греческий | да | да | 1 | |
| ISO 8859-8, ECMA 121 | Латинский / иврит | да | да | 1 | |
| ИОХАБ | Корейский (хангыль) | Нет | Нет | 1–3 | |
| КОИ 8-R | Кириллица (русский) | да | да | 1 |
|
| КОИ 8-У | Кириллица (украинский) | да | да | 1 | |
| ISO 8859-1, ECMA 94 | Западноевропейский | да | да | 1 |
|
| ISO 8859-2, ECMA 94 | Центральноевропейская | да | да | 1 |
|
| ISO 8859-3, ECMA 94 | Южноевропейский | да | да | 1 |
|
| ISO 8859-4, ECMA 94 | Североевропейский | да | да | 1 |
|
| ISO 8859-9, ECMA 128 | турецкий | да | да | 1 |
|
| ISO 8859-10, ECMA 144 | Скандинавский | да | да | 1 |
|
| ISO 8859-13 | Балтийский | да | да | 1 |
|
| ISO 8859-14 | кельтский | да | да | 1 |
|
| ISO 8859-15 | LATIN1 с евро и акцентами | да | да | 1 |
|
| ISO 8859-16, ASRO SR 14111 | румынский | да | Нет | 1 |
|
| Внутренний код мула | Многоязычный Emacs | да | Нет | 1–4 | |
| Shift JIS | Японский | Нет | Нет | 1-2 |
,
,
,
|
| Сдвиг JIS, JIS X 0213 | Японский | Нет | Нет | 1-2 | |
| не указано (см. текст) | | да | Нет | 1 | |
| Единый код хангыль | Корейский | Нет | Нет | 1-2 |
,
|
| Юникод, 8 бит | | да | да | 1–4 |
|
| Окна CP866 | Кириллица | да | да | 1 |
|
| Окна CP874 | Тайский | да | Нет | 1 | |
| Окна CP1250 | Центральноевропейская | да | да | 1 | |
| Окна CP1251 | Кириллица | да | да | 1 |
|
| Окна CP1252 | Западноевропейский | да | да | 1 | |
| Окна CP1253 | Греческий | да | да | 1 | |
| Окна CP1254 | турецкий | да | да | 1 | |
| Окна CP1255 | иврит | да | да | 1 | |
| Окна CP1256 | арабский | да | да | 1 | |
| Окна CP1257 | Балтийский | да | да | 1 | |
| Окна CP1258 | вьетнамский | да | да | 1 |
,
,
,
|
Не все клиенты
API
s поддерживают все перечисленные наборы символов.Например,
PostgreSQL
Драйвер JDBC не поддерживает
MULE_INTERNAL
,
LATIN6
,
LATIN8
, а также
ЛАТИНСКИЙ 10
.
В
SQL_ASCII
настройка ведет себя значительно иначе
из других настроек. Когда набор символов сервера
SQL_ASCII
, сервер интерпретирует байтовые значения 0–127
по стандарту ASCII, при этом берутся байтовые значения 128–255
как неинтерпретированные символы.Преобразование кодировки не будет выполнено, когда
настройка
SQL_ASCII
. Таким образом, этот параметр не так
много декларации, что используется определенная кодировка, как декларация
незнания о кодировке. В большинстве случаев, если вы
работая с любыми данными, отличными от ASCII, неразумно использовать
SQL_ASCII
настройка, потому что
PostgreSQL
не сможет вам помочь
преобразование или проверка символов, отличных от ASCII.
23.3.2. Установка набора символов
initdb
определяет набор символов по умолчанию (кодировку)
для
PostgreSQL
кластер. Например,
initdb -E EUC_JP
устанавливает набор символов по умолчанию на
EUC_JP
(Расширенный код Unix для японского языка). Ты
можно использовать
- кодирование
вместо
-E
если вы предпочитаете более длинные строки параметров.Если нет
-E
или же
- кодирование
вариант
дано,
initdb
пытается определить подходящий
кодировка для использования на основе указанного языкового стандарта или языкового стандарта по умолчанию.
Вы можете указать кодировку, отличную от используемой по умолчанию, во время создания базы данных,
при условии, что кодировка совместима с выбранной локалью:
createdb -E EUC_KR -T template0 --lc-collate = ko_KR.euckr --lc-ctype = ko_KR.Euckr корейский
Это создаст базу данных с именем
Корейский
что
использует набор символов
EUC_KR
, и языковой стандарт
ko_KR
.
Другой способ добиться этого — использовать эту команду SQL:
СОЗДАТЬ БАЗУ ДАННЫХ корейский С КОДИРОВАНИЕМ 'EUC_KR' LC_COLLATE = 'ko_KR.euckr' LC_CTYPE = 'ko_KR.euckr' TEMPLATE = template0;
Обратите внимание, что приведенные выше команды определяют копирование
template0
база данных.При копировании любой другой базы данных кодировка и локаль
параметры не могут быть изменены по сравнению с исходной базой данных, потому что
это может привести к повреждению данных. Для получения дополнительной информации см.
Раздел 22.3
.
Кодировка для базы данных хранится в системном каталоге.
pg_database
. Вы можете увидеть это, используя
psql
-l
вариант или
\ l
команда.
$ psql -l
Список баз данных
Имя | Владелец | Кодирование | Сортировка | Ctype | Привилегии доступа
----------- + ---------- + ----------- + ------------- + - ------------ + -------------------------------------
clocaledb | хлиннака | SQL_ASCII | C | C |
englishdb | хлиннака | UTF8 | en_GB.UTF8 | en_GB.UTF8 |
японский | хлиннака | UTF8 | ja_JP.UTF8 | ja_JP.UTF8 |
корейский | хлиннака | EUC_KR | ko_KR.euckr | ko_KR.euckr |
postgres | хлиннака | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 |
template0 | хлиннака | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {= c / hlinnaka, hlinnaka = CTc / hlinnaka}
template1 | хлиннака | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {= c / hlinnaka, hlinnaka = CTc / hlinnaka}
(7 рядов)
Важный
В большинстве современных операционных систем
PostgreSQL
может определить, какой набор символов подразумевается
LC_CTYPE
параметр, и он будет обеспечивать, чтобы только соответствующая кодировка базы данных была
использовал.В старых системах вы обязаны убедиться, что используете
кодировка, ожидаемая выбранной вами локалью. Ошибка в
эта область может привести к странному поведению зависящего от локали
такие операции, как сортировка.
PostgreSQL
позволит суперпользователям создавать
базы данных с
SQL_ASCII
кодирование даже когда
LC_CTYPE
не является
C
или же
POSIX
.Как указано
выше,
SQL_ASCII
не требует, чтобы данные, хранящиеся в
база данных имеет какую-либо конкретную кодировку, поэтому этот выбор создает риски
плохого поведения, зависящего от локали. Использование этой комбинации настроек
устарели и когда-нибудь могут быть полностью запрещены.
23.3.3. Автоматическое преобразование набора символов между сервером и клиентом
PostgreSQL
поддерживает автоматический характер
установить преобразование между сервером и клиентом для многих комбинаций
наборы символов (
Раздел 23.3,4
показывает какие).
Чтобы включить автоматическое преобразование набора символов, вы должны
рассказать
PostgreSQL
набор символов
(кодировка), которую вы хотели бы использовать в клиенте. Есть несколько
способы сделать это:
С помощью
\ кодировка
командовать вpsql
.
\ кодировка
позволяет сменить клиента
кодирование на лету.Для
например, чтобы изменить кодировку на
SJIS
, тип:\ кодирование SJIS
libpq
(
Раздел 33.10
) имеет функции для управления кодировкой клиента.
С использованием
УСТАНОВИТЬ client_encoding TO
.Установить клиентскую кодировку можно с помощью этой команды SQL:
УСТАНОВИТЕ CLIENT_ENCODING в '
значение
';Также вы можете использовать стандартный синтаксис SQL
УСТАНОВИТЬ ИМЕНА
для этого:УСТАНОВИТЕ ИМЕНА '
значение
';Чтобы запросить текущую клиентскую кодировку:
ПОКАЗАТЬ client_encoding;
Чтобы вернуться к кодировке по умолчанию:
СБРОС client_encoding;
С использованием
PGCLIENTENCODING
.Если переменная среды
PGCLIENTENCODING
определяется в клиентской
среда, эта клиентская кодировка выбирается автоматически
при подключении к серверу. (Это может
впоследствии переопределить с помощью любого из других методов
упомянутое выше.)Использование переменной конфигурации
client_encoding
. Если
client_encoding
переменная установлена, этот клиент
кодировка выбирается автоматически при подключении к
сервер сделан.(Впоследствии это может быть отменено с помощью любого
других методов, упомянутых выше.)
Если преобразование определенного символа невозможно
— предположим, вы выбрали
EUC_JP
для
сервер и
LATIN1
для клиента, а некоторые
Возвращаются японские символы, не представленные в
LATIN1
— сообщается об ошибке.
Если набор символов клиента определен как
SQL_ASCII
,
преобразование кодировки отключено, независимо от символа сервера
набор.(Однако, если набор символов сервера
нет
SQL_ASCII
, сервер все равно будет проверять, что
входящие данные действительны для этой кодировки; так что чистый эффект как
хотя набор символов клиента был таким же, как и на сервере.)
Как и в случае с сервером, использование
SQL_ASCII
неразумно
если вы не работаете с данными в формате ASCII.
23.3.4. Доступные преобразования набора символов
PostgreSQL
позволяет преобразование между любыми
два набора символов, для которых функция преобразования указана в
pg_conversion
системный каталог.PostgreSQL
поставляется с
некоторые предопределенные преобразования, как описано в
Таблица 23.2
и показано в более
подробно в
Таблица 23.3
. Ты можешь
создать новое преобразование с помощью команды SQL
СОЗДАТЬ ПРЕОБРАЗОВАНИЕ
. (Используется для автоматического
конверсии клиент / сервер, конверсия должна быть отмечена
в виде
»
По умолчанию
»
для его пары наборов символов.)
Таблица 23.2. Встроенное преобразование набора символов клиент / сервер
Набор символов сервера | Доступные наборы символов клиента |
---|---|
| |
| , |
| , |
| , |
| , |
| , |
| |
| |
| , |
| , |
| , |
| , |
| |
| , |
| , |
| , |
| , |
| , |
| , |
| , |
| , |
| , |
| , |
| , |
| , |
| , |
| |
| |
| |
| |
| |
| , |
| , |
| , |
| , |
| , |
| , |
| , |
| , |
| , |
| , |
| , |
Таблица 23.3. Все встроенные преобразования набора символов.
Название конверсии | Исходное кодирование | Кодирование назначения |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Это хорошие источники, чтобы начать изучать различные виды кодирования.
системы.
Обработка информации CJKV: вычисления на китайском, японском, корейском и вьетнамском языках
Содержит подробные объяснения
EUC_JP
,
EUC_CN
,
EUC_KR
,
EUC_TW
.https: // www.unicode.org/
Веб-сайт Консорциума Unicode.
RFC 3629
UTF
-8 (8-битное преобразование UCS / Unicode)
Формат) определяется здесь.
Русифицировать MS Windows
Эти инструкции подходят для:
- MS Windows NT 4.0 .
- MS Windows 98 .
- MS Windows 95 .
- MS Windows 3.11 , MS Windows 3.1 .
KOI8-R против CP1251 на Windows Turf
Мы рекомендуем использовать собственные шрифты и клавиатуру CP1251.
на платформах MS Windows.
Это потому, что шрифты Microsoft CP1251 лучше, чем
бесплатные шрифты KOI8-R и поскольку клавиатура CP1251 интегрирована в систему,
а клавиатура KOI8-R — нет.
Однако это не означает, что вам нужно
прекратить использование KOI8-R в качестве внешнего стандарта Интернета.KOI8-R — это стандарт, который вы должны использовать, и способ справиться с этим
использовать приложений, которые преобразуют внутренних символов CP1251 в
внешние символы KOI8-R при отправке материалов и, наоборот,
конвертировать KOI8-R в CP1251 при чтении.
Два самых важных интернет-приложения — Netscape Communicator
(Navigator версии 4.0) и Microsoft Internet Explorer (начиная с версии 3.0)
— уже делаю.
Это все, что имеет значение.
Однако, если вы используете MS Windows 3.1 и / или более старые приложения, которые
не выполняйте преобразование на лету, вам все равно нужно
установить шрифты и клавиатуру KOI8-R, чтобы иметь возможность работать с кириллицей в сети.
Перед тем, как начать
Резюме.
Я предполагаю, что у вас есть свежая установка системы Windows.
Перед началом рекомендую удалить все
другие пакеты русификации в вашей системе.
Я действительно не знаю как удалить
все существующие сегодня пакеты русификации.Вы должны спросить поставщика пакета, который хотите удалить.
Содержание
Обратите внимание, что русификация этих 3 систем существенно различается,
так что обратите внимание, какая техника используется для какой системы.
Чтобы русифицировать свою систему MS Windows, вам нужно сделать 3 вещи:
- Установить кириллические шрифты
Они нужны для отображения кириллических символов. - Установите переключатель кириллической клавиатуры .