Кодировки utf-8 и windows 1251

Оглавление

Сравнение найденных решений на автоопределение кодировки

Подготовил каталог softlandia\cpd тестовые данные с файлами в разных кодировках. Содержимое файлов очень короткое и одинаковое. Одна строка “Русский в кодировке CodePageName”. Дополнил файлами со смешением кодировок и некоторыми сложными случаями и попробовал определить.

Мне кажется получилось забавно.

# Кодировка html/charset saintfish/chardet softlandia/cpd enca
1 CP1251 windows-1252 CP1251 CP1251 CP1251
2 CP866 windows-1252 windows-1252 CP866 CP866
3 KOI8-R windows-1252 KOI8-R KOI8-R KOI8-R
4 ISO-8859-5 windows-1252 ISO-8859-5 ISO-8859-5 ISO-8859-5
5 UTF-8 with BOM utf-8 utf-8 utf-8 utf-8
6 UTF-8 without BOM utf-8 utf-8 utf-8 utf-8
7 UTF-16LE with BOM utf-16le utf-16le utf-16le ISO-10646-UCS-2
8 UTF-16LE without BOM windows-1252 ISO-8859-1 utf-16le unknown
9 UTF-16BE with BOM utf-16le utf-16be utf-16be ISO-10646-UCS-2
10 UTF-16BE without BOM windows-1252 ISO-8859-1 utf-16be ISO-10646-UCS-2
11 UTF-32LE with BOM utf-16le utf-32le utf-32le ISO-10646-UCS-4
12 UTF-32LE without BOM windows-1252 utf-32le utf-32le ISO-10646-UCS-4
13 UTF-32BE with BOM windows-1252 utf-32be utf-32be ISO-10646-UCS-4
14 UTF-32BE without BOM windows-1252 utf-32be utf-32be ISO-10646-UCS-4
15 KOI8-R (UPPER) windows-1252 KOI8-R KOI8-R CP1251
16 CP1251 (UPPER) windows-1252 CP1251 CP1251 KOI8-R
17 CP866 & CP1251 windows-1252 CP1251 CP1251 unknown

Наблюдение 1

enca не определила кодировку у файла UTF-16LE без BOM — это странно, ну ладно. Я попробовал добавить больше текста, но результата не получил.

Наблюдение 2. Проблемы с кодировками CP1251 и KOI8-R

Строка 15 и 16. У команды enca есть проблемы.
Здесь сделаю объяснение, дело в том, что кодировки CP1251 (она же Windows 1251) и KOI8-R очень близки если рассматривать только алфавитные символы.

Таблица KOI8-r

В обеих кодировках алфавит расположен от 0xC0 до 0xFF, но там где у одной кодировки заглавные буквы у другой строчные. Судя по всему enca работает по строчным буквам. Вот и получается, если подать на вход программе enca строку “СТП” в кодировке CP1251, то она решит, что это строка “яро” в кодировке KOI8-r, о чём и сообщит. В обратную сторону также работает.

Стандартной библиотеке html/charset можно доверить только определение UTF-8, но осторожно! Пользоваться следует именно charset.DetermineEncoding(), поскольку метод utf8.Valid(b []byte) на файлах в кодировке utf-16be возвращает true

Подсистема «Показатели объектов»

Если вашим пользователям нужно вывести в динамический список разные показатели, которые нельзя напрямую получить из таблиц ссылочных объектов, и вы не хотите изменять структуру справочников или документов — тогда эта подсистема для вас. С помощью нее вы сможете в пользовательском режиме создать свой показатель, который будет рассчитываться по формуле или с помощью запроса. Этот показатель вы сможете вывести в динамический список, как любую другую характеристику объекта. Также можно будет настроить отбор или условное оформление с использованием созданного показателя.

2 стартмани

Юникод

Нетрудно понять, что, хотя кодирование важно, декодирование в равной степени жизненно важно для понимания представлений. Это возможно на практике только в том случае, если широко используется согласованная или совместимая схема кодирования

Различные схемы кодирования, разработанные изолированно и практикуемые в местных географических регионах, начали становиться сложными.

Эта проблема породила особый стандарт кодирования, называемый Unicode, который имеет емкость для всех возможных символов в мире . Это включает в себя символы, которые используются, и даже те, которые уже не существуют!

Ну, для этого должно потребоваться несколько байтов для хранения каждого символа? Честно говоря, да, но у Unicode есть гениальное решение.

Unicode как стандарт определяет кодовые точки для каждого возможного символа в мире. Кодовая точка для символа “T” в Юникоде равна 84 в десятичной системе счисления. Обычно мы называем это “U+0054” в Юникоде, который представляет собой не что иное, как U+, за которым следует шестнадцатеричное число.

Мы используем шестнадцатеричную систему в качестве основы для кодовых точек в Юникоде, поскольку существует 1 114 112 точек, что является довольно большим числом для удобной передачи в десятичном формате!

То, как эти кодовые точки кодируются в биты, зависит от конкретных схем кодирования в Юникоде. Мы рассмотрим некоторые из этих схем кодирования в подразделах ниже.

5.1. UTF-32

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

Давайте посмотрим, как простой символ, такой как “T”, представлен в UTF-32. Мы будем использовать метод преобразования в двоичный код , введенный ранее:

assertEquals(convertToBinary("T", "UTF-32"), "00000000 00000000 00000000 01010100");

Вывод выше показывает использование четырех байтов для представления символа “T”, где первые три байта-это просто потраченное впустую пространство.

5.2. UTF-8

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

Давайте снова вызовем метод convertToBinary с вводом как “T” и кодированием как ” UTF-8″:

assertEquals(convertToBinary("T", "UTF-8"), "01010100");

Вывод в точности аналогичен ASCII, использующему только один байт. На самом деле UTF-8 полностью обратно совместим с ASCII.

Давайте снова вызовем метод convertToBinary с вводом как “語” и кодированием как ” UTF-8″:

assertEquals(convertToBinary("語", "UTF-8"), "11101000 10101010 10011110");

Как мы видим здесь, UTF-8 использует три байта для представления символа “語”. Это известно как кодирование переменной ширины .

UTF-8, благодаря своей экономичности пространства, является наиболее распространенной кодировкой, используемой в Интернете.

Кодировка UNICODE

Юникод (Unicode) — стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода».

В Unicode используются 16-битовые (2-байтовые) коды, что позволяет представить 65536 символов.

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

Тип кодировки задается в свойствах проекта Microsoft Visual Studio:

Для перекодирования строки в формат Unicode без изменения кодировки файла используется макроопределение _T(“строка”)

Неправильная кодировка результатов из базы данных MySQL

Если ваш сайт состоит из статической части (шаблон) и динамической, которая формируется из данных, получаемых из базы данных, то может возникнуть ситуация, когда часть сайта имеет правильную кодировку, а другая часть сайта имеет неправильную. В этом случае бесполезно менять настройки веб-сервера – поскольку всё равно часть страницы будет иметь неправильную кодировку.

Нужно начать с определения кодировки ваших таблиц. Можно посмотреть в phpMyAdmin:

Обратите внимание на столбец «Сравнение», запись «utf8_unicode_ci» означает, что используется кодировка UTF-8. Можно подключиться к СУБД MySQL и проверить кодировку таблиц без phpMyAdmin

Для этого:

Можно подключиться к СУБД MySQL и проверить кодировку таблиц без phpMyAdmin. Для этого:

mysql -u root -p

Если вы забыли имя базы данных, то выполните команду:

SHOW DATABASES;

Предположим, я хочу посмотреть кодировку для таблиц в базе данных information_schema

USE information_schema;

Если вы забыли имя таблиц, выполните:

SHOW TABLES;

Далее выполните команду, в которой имя_таблицы замените на настоящее имя таблицы:

SHOW FULL COLUMNS FROM имя_таблицы;

Например:

SHOW FULL COLUMNS FROM GLOBAL_STATUS;

Вы увидите примерно следующее:

Смотрите столбец Collation. В моём случае там utf8_general_ci, это, как и utf8_unicode_ci, кодировка UTF-8. Кстати, если вы не знаете в чём разница между кодировками utf8_general_ci, utf8_unicode_ci, utf8mb4_general_ci, utf8mb4_unicode_ci, а также какую кодировку выбрать для базы данных MySQL, то посмотрите эту статью.

Теперь, когда мы узнали кодировку (в моём случае это UTF-8), то при каждом подключении к СУБД MySQL нужно выполнять последовательно запросы:

SET NAMES UTF8 SET CHARACTER SET UTF8 SET character_set_client = UTF8 SET character_set_connection = UTF8 SET character_set_results = UTF8

В PHP это можно сделать примерно так:

$this->mysqli = new mysqli($server, $username, $password, $basename); if ($this->mysqli->connect_error) { $this->errorHandler_c->logError(1, ‘Connect Error (‘ . $this->mysqli->connect_errno . ‘) ‘ . $this->mysqli->connect_error, $_SERVER ); } $this->mysqli->query(«SET NAMES UTF8»); $this->mysqli->query(«SET CHARACTER SET UTF8»); $this->mysqli->query(«SET character_set_client = UTF8»); $this->mysqli->query(«SET character_set_connection = UTF8»); $this->mysqli->query(«SET character_set_results = UTF8»);

Обратите внимание, что UTF8 вам нужно заменить на ту кодировку, которая используется для ваших таблиц

1251 – кодовая страница Windows

128 Ђ 144 Ђ 160 176 ° 192 А 208 Р 224 а 240 р
129 Ѓ 145 ‘ 161 Ў 177 ± 193 Б 209 С 225 б 241 с
130 ‚ 146 ’ 162 ў 178 I 194 В 210 Т 226 в 242 т
131 ѓ 147 “ 163 J 179 i 195 Г 211 У 227 г 243 у
132 „ 148 ” 164 ¤ 180 ґ 196 Д 212 Ф 228 д 244 ф
133 … 149 • 165 Ґ 181 μ 197 Е 213 Х 229 е 245 х
134 † 150 – 166 ¦ 182 ¶ 198 Ж 214 Ц 230 ж 246 ц
135 ‡ 151 — 167 § 183 · 199 З 215 Ч 231 з 247 ч
136 € 152 □ 168 Ё 184 ё 200 И 216 Ш 232 и 248 ш
137 ‰ 153 169 185 № 201 Й 217 Щ 233 й 249 щ
138 Љ 154 љ 170 Є 186 є 202 К 218 Ъ 234 к 250 ъ
139 < 155 > 171 « 187 » 203 Л 219 Ы 235 л 251 ы
140 Њ 156 њ 172 ¬ 188 j 204 М 220 Ь 236 м 252 ь
141 Ќ 157 ќ 173 189 S 205 Н 221 Э 237 н 253 э
142 Ћ 158 ћ 174 190 s 206 О 222 Ю 238 о 254 ю
143 Џ 159 џ 175 Ï 191 ї 207 П 223 Я 239 п 255 я

866 – кодовая страница DOS

128 А 144 Р 160 а 176 ░ 192 └ 208 ╨ 224 р 240 ≡Ё
129 Б 145 С 161 б 177 ▒ 193 ┴ 209 ╤ 225 с 241 ±ё
130 В 146 Т 162 в 178 ▓ 194 ┬ 210 ╥ 226 т 242 ≥
131 Г 147 У 163 г 179 │ 195 ├ 211 ╙ 227 у 243 ≤
132 Д 148 Ф 164 д 180 ┤ 196 ─ 212 ╘ 228 ф 244 ⌠
133 Е 149 Х 165 е 181 ╡ 197 ┼ 213 ╒ 229 х 245 ⌡
134 Ж 150 Ц 166 ж 182 ╢ 198 ╞ 214 ╓ 230 ц 246 ¸
135 З 151 Ч 167 з 183 ╖ 199 ╟ 215 ╫ 231 ч 247 »
136 И 152 Ш 168 и 184 ╕ 200 ╚ 216 ╪ 232 ш 248 °
137 Й 153 Щ 169 й 185 ╣ 201 ╔ 217 ┘ 233 щ 249 ·
138 К 154 Ъ 170 к 186 ║ 202 ╩ 218 ┌ 234 ъ 250 ∙
139 Л 155 Ы 171 л 187 ╗ 203 ╦ 219 █ 235 ы 251 √
140 М 156 Ь 172 м 188 ╝ 204 ╠ 220 ▄ 236 ь 252 ⁿ
141 Н 157 Э 173 н 189 ╜ 205 ═ 221 ▌ 237 э 253 ²
142 О 158 Ю 174 о 190 ╛ 206 ╬ 222 ▐ 238 ю 254 ■
143 П 159 Я 175 п 191 ┐ 207 ╧ 223 ▀ 239 я 255

Русские названия основных спецсимволов:

Символ Название
` гравис, кавычка, обратный машинописный апостроф
` гравис, кавычка, обратный машинописный апостроф
~ тильда
! восклицательный знак
@ эт, коммерческое эт, «собака»
# октоторп, решетка, диез
$ знак доллара
% процент
^ циркумфлекс, знак вставки
& амперсанд
* астериск, звездочка, знак умножения
( левая открывающая круглая скобка
) правая закрывающая круглая скобка
минус, дефис
_ знак подчеркивания
= знак равенства
+ плюс
левая открывающая квадратная скобка
правая закрывающая квадратная скобка
{ левая открывающая фигурная скобка
} правая закрывающая фигурная скобка
; точка с запятой
двоеточие
машинописный апостроф, одинарная кавычка
« двойная кавычка
, запятая
. точка
слэш, косая черта, знак дроби
< левая открытая угловая скобка, знак меньше
> правая закрытая угловая скобка, знак больше
\ обратный слэш, обратная косая черта
| вертикальная черта

Кодировка UNICODE

Юникод (Unicode) — стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода».
В Unicode используются 16-битовые (2-байтовые) коды, что позволяет представить 65536 символов.
Применение стандарта Unicode позволяет закодировать очень большое число символов из разных письменностей: в документах Unicode могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы и кириллицы, при этом становится ненужным переключение кодовых страниц.
Для представления символьных данных в кодировке Unicode используется символьный тип wchar_t.

ASCII UNICODE
char wchar_t
1 байт 2 байта

Тип кодировки задается в свойствах проекта Microsoft Visual Studio:
Многобайтовая кодировка предполагает использование кодировки ASCII.
При этом при построении проекта используется директива условной компиляции, переопределяющая тип TCHAR:

#ifdef _UNICODE  typedef wchar_t TCHAR;#else  typedef char TCHAR;#endif

_T(«строка»)tchar.hПредставление данных и архитектура ЭВМ

Таблица кодов символов Windows-1251

Windows-1251 — набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Данная кодировка пользуется довольно большой популярностью в восточно-европейских странах.

Windows-1251 выгодно отличается от других 8-битных кириллических кодировок (таких как CP866, KOI8-R и ISO 8859-5) наличием практически всех символов, использующихся в традиционной русской типографике для обычного текста (отсутствует только знак ударения). Кириллические символы идут в алфавитном порядке.

Windows-1251 также содержит все символы для близких к русскому языку языков: белорусского, украинского, сербского, македонского и болгарского.

На практике этого оказалось достаточно, чтобы кодировка Windows-1251 закрепилась в интернете вплоть до распространения UTF-8.

000 00 NOP 128 80 Ђ
001 01 SOH 129 81 Ѓ
002 02 STX 130 82
003 03 ETX 131 83 ѓ
004 04 EOT 132 84
005 05 ENQ 133 85
006 06 ACK 134 86
007 07 BEL 135 87
008 08 BS 136 88
009 09 TAB 137 89
010 0A LF 138 8A Љ
011 0B VT 139 8B
012 0C FF 140 8C Њ
013 0D CR 141 8D Ќ
014 0E SO 142 8E Ћ
015 0F SI 143 8F Џ
016 10 DLE 144 90 ђ
017 11 DC1 145 91
018 12 DC2 146 92
019 13 DC3 147 93
020 14 DC4 148 94
021 15 NAK 149 95
022 16 SYN 150 96
023 17 ETB 151 97
024 18 CAN 152 98
025 19 EM 153 99
026 1A SUB 154 9A љ
027 1B ESC 155 9B
028 1C FS 156 9C њ
029 1D GS 157 9D ќ
030 1E RS 158 9E ћ
031 1F US 159 9F џ
032 20 SP 160 A0
033 21 ! 161 A1 Ў
034 22 162 A2 ў
035 23 # 163 A3 Ћ
036 24 $ 164 A4 ¤
037 25 % 165 A5 Ґ
038 26 & 166 A6 ¦
039 27 167 A7 §
040 28 ( 168 A8 Ё
041 29 ) 169 A9
042 2A * 170 AA Є
043 2B + 171 AB
044 2C , 172 AC ¬
045 2D 173 AD ­
046 2E . 174 AE
047 2F 175 AF Ї
048 30 176 B0 °
049 31 1 177 B1 ±
050 32 2 178 B2 І
051 33 3 179 B3 і
052 34 4 180 B4 ґ
053 35 5 181 B5 µ
054 36 6 182 B6
055 37 7 183 B7 ·
056 38 8 184 B8 ё
057 39 9 185 B9
058 3A 186 BA є
059 3B ; 187 BB
060 3C 190 BE ѕ
063 3F ? 191 BF ї
064 40 @ 192 C0 А
065 41 A 193 C1 Б
066 42 B 194 C2 В
067 43 C 195 C3 Г
068 44 D 196 C4 Д
069 45 E 197 C5 Е
070 46 F 198 C6 Ж
071 47 G 199 C7 З
072 48 H 200 C8 И
073 49 I 201 C9 Й
074 4A J 202 CA К
075 4B K 203 CB Л
076 4C L 204 CC М
077 4D M 205 CD Н
078 4E N 206 CE О
079 4F O 207 CF П
080 50 P 208 D0 Р
081 51 Q 209 D1 С
082 52 R 210 D2 Т
083 53 S 211 D3 У
084 54 T 212 D4 Ф
085 55 U 213 D5 Х
086 56 V 214 D6 Ц
087 57 W 215 D7 Ч
088 58 X 216 D8 Ш
089 59 Y 217 D9 Щ
090 5A Z 218 DA Ъ
091 5B 219 DB Ы
092 5C 220 DC Ь
093 5D 221 DD Э
094 5E ^ 222 DE Ю
095 5F _ 223 DF Я
096 60 ` 224 E0 а
097 61 a 225 E1 б
098 62 b 226 E2 в
099 63 c 227 E3 г
100 64 d 228 E4 д
101 65 e 229 E5 е
102 66 f 230 E6 ж
103 67 g 231 E7 з
104 68 h 232 E8 и
105 69 i 233 E9 й
106 6A j 234 EA к
107 6B k 235 EB л
108 6C l 236 EC м
109 6D m 237 ED н
110 6E n 238 EE о
111 6F o 239 EF п
112 70 p 240 F0 р
113 71 q 241 F1 с
114 72 r 242 F2 т
115 73 s 243 F3 у
116 74 t 244 F4 ф
117 75 u 245 F5 х
118 76 v 246 F6 ц
119 77 w 247 F7 ч
120 78 x 248 F8 ш
121 79 y 249 F9 щ
122 7A z 250 FA ъ
123 7B { 251 FB ы
124 7C | 252 FC ь
125 7D } 253 FD э
126 7E ~ 254 FE ю
127 7F DEL 255 FF я

Описание специальных (управляющих) символов

Первоначально управляющие символы таблицы ASCII (диапазон 00-31, плюс 127) были разработаны для того, чтобы управлять устройствами аппаратных средств, таких как телетайп, ввод данных на перфоленту и др.Управляющие символы (кроме горизонтальной табуляции, перевода строки и возврата каретки) не используются в HTML-документах.

КодОписание
NUL, 00
Null, пустой
SOH, 01
Start Of Heading, начало заголовка
STX, 02
Start of TeXt, начало текста
ETX, 03
End of TeXt, конец текста
EOT, 04
End of Transmission, конец передачи
ENQ, 05
Enquire. Прошу подтверждения
ACK, 06
Acknowledgement. Подтверждаю
BEL, 07
Bell, звонок
BS, 08
Backspace, возврат на один символ назад
TAB, 09
Tab, горизонтальная табуляция
LF, 0A
Line Feed, перевод строкиСейчас в большинстве языков программирования обозначается как

VT, 0B
Vertical Tab, вертикальная табуляция
FF, 0C
Form Feed, прогон страницы, новая страница
CR, 0D
Carriage Return, возврат кареткиСейчас в большинстве языков программирования обозначается как

SO, 0E
Shift Out, изменить цвет красящей ленты в печатающем устройстве
SI, 0F
Shift In, вернуть цвет красящей ленты в печатающем устройстве обратно
DLE, 10
Data Link Escape, переключение канала на передачу данных
DC1, 11 DC2, 12DC3, 13DC4, 14
Device Control, символы управления устройствами
NAK, 15
Negative Acknowledgment, не подтверждаю
SYN, 16
Synchronization. Символ синхронизации
ETB, 17
End of Text Block, конец текстового блока
CAN, 18
Cancel, отмена переданного ранее
EM, 19
End of Medium, конец носителя данных
SUB, 1A
Substitute, подставить. Ставится на месте символа, значение которого было потеряно или испорчено при передаче
ESC, 1B
Escape Управляющая последовательность
FS, 1C
File Separator, разделитель файлов
GS, 1D
Group Separator, разделитель групп
RS, 1E
Record Separator, разделитель записей
US, 1F
Unit Separator, разделитель юнитов
DEL, 7F
Delete, стереть последний символ.

ASCII таблица кодов символов Windows (Win-1251)

Dec Hex Символ   Dec Hex Символ
000 00 спец. NOP   128 80 Ђ
001 01 спец. SOH   129 81 Ѓ
002 02 спец. STX   130 82
003 03 спец. ETX   131 83 ѓ
004 04 спец. EOT   132 84
005 05 спец. ENQ   133 85
006 06 спец. ACK   134 86
007 07 спец. BEL   135 87
008 08 спец. BS   136 88
009 09 спец. TAB   137 89
010 0A спец. LF   138 8A Љ
011 0B спец. VT   139 8B ‹ ‹
012 0C спец. FF   140 8C Њ
013 0D спец. CR   141 8D Ќ
014 0E спец. SO   142 8E Ћ
015 0F спец. SI   143 8F Џ
016 10 спец. DLE   144 90 ђ
017 11 спец. DC1   145 91
018 12 спец. DC2   146 92
019 13 спец. DC3   147 93
020 14 спец. DC4   148 94
021 15 спец. NAK   149 95
022 16 спец. SYN   150 96
023 17 спец. ETB   151 97
024 18 спец. CAN   152 98
025 19 спец. EM   153 99
026 1A спец. SUB   154 9A љ
027 1B спец. ESC   155 9B
028 1C спец. FS   156 9C њ
029 1D спец. GS   157 9D ќ
030 1E спец. RS   158 9E ћ
031 1F спец. US   159 9F џ
032 20 сцеп. SP (Пробел)   160 A0
033 21 !   161 A1 Ў
034 22 «   162 A2 ў
035 23 #   163 A3 Ћ
036 24 $   164 A4 ¤
037 25 %   165 A5 Ґ
038 26 &   166 A6 ¦
039 27   167 A7 §
040 28 (   168 A8 Ё
041 29 )   169 A9
042 2A *   170 AA Є
043 2B +   171 AB
044 2C ,   172 AC ¬
045 2D   173 AD ­
046 2E .   174 AE
047 2F   175 AF Ї
048 30   176 B0 °
049 31 1   177 B1 ±
050 32 2   178 B2 І
051 33 3   179 B3 і
052 34 4   180 B4 ґ
053 35 5   181 B5 µ
054 36 6   182 B6
055 37 7   183 B7 ·
056 38 8   184 B8 ё
057 39 9   185 B9
058 3A   186 BA є
059 3B ;   187 BB
060 3C <   188 BC ј
061 3D =   189 BD Ѕ
062 3E >   190 BE ѕ
063 3F ?   191 BF ї
064 40 @   192 C0 А
065 41 A   193 C1 Б
066 42 B   194 C2 В
067 43 C   195 C3 Г
068 44 D   196 C4 Д
069 45 E   197 C5 Е
070 46 F   198 C6 Ж
071 47 G   199 C7 З
072 48 H   200 C8 И
073 49 I   201 C9 Й
074 4A J   202 CA К
075 4B K   203 CB Л
076 4C L   204 CC М
077 4D M   205 CD Н
078 4E N   206 CE О
079 4F O   207 CF П
080 50 P   208 D0 Р
081 51 Q   209 D1 С
082 52 R   210 D2 Т
083 53 S   211 D3 У
084 54 T   212 D4 Ф
085 55 U   213 D5 Х
086 56 V   214 D6 Ц
087 57 W   215 D7 Ч
088 58 X   216 D8 Ш
089 59 Y   217 D9 Щ
090 5A Z   218 DA Ъ
091 5B   219 DB Ы
092 5C \   220 DC Ь
093 5D   221 DD Э
094 5E ^   222 DE Ю
095 5F _   223 DF Я
096 60 `   224 E0 а
097 61 a   225 E1 б
098 62 b   226 E2 в
099 63 c   227 E3 г
100 64 d   228 E4 д
101 65 e   229 E5 е
102 66 f   230 E6 ж
103 67 g   231 E7 з
104 68 h   232 E8 и
105 69 i   233 E9 й
106 6A j   234 EA к
107 6B k   235 EB л
108 6C l   236 EC м
109 6D m   237 ED н
110 6E n   238 EE о
111 6F o   239 EF п
112 70 p   240 F0 р
113 71 q   241 F1 с
114 72 r   242 F2 т
115 73 s   243 F3 у
116 74 t   244 F4 ф
117 75 u   245 F5 х
118 76 v   246 F6 ц
119 77 w   247 F7 ч
120 78 x   248 F8 ш
121 79 y   249 F9 щ
122 7A z   250 FA ъ
123 7B {   251 FB ы
124 7C |   252 FC ь
125 7D }   253 FD э
126 7E ~   254 FE ю
127 7F Спец. DEL   255 FF я

ASCII таблица кодов символов Windows. Описание специальных (управляющих) символов

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

Код Описание
NUL, 00 Null, пустой
SOH, 01 Start Of Heading, начало заголовка
STX, 02 Start of TeXt, начало текста.
ETX, 03 End of TeXt, конец текста
EOT, 04 End of Transmission, конец передачи
ENQ, 05 Enquire. Прошу подтверждения
ACK, 06 Acknowledgement. Подтверждаю
BEL, 07 Bell, звонок
BS, 08 Backspace, возврат на один символ назад
TAB, 09 Tab, горизонтальная табуляция
LF, 0A Line Feed, перевод строки.
Сейчас в большинстве языков программирования обозначается как \n
VT, 0B Vertical Tab, вертикальная табуляция.
FF, 0C Form Feed, прогон страницы, новая страница
CR, 0D Carriage Return, возврат каретки.
Сейчас в большинстве языков программирования обозначается как \r
SO, 0E Shift Out, изменить цвет красящей ленты в печатающем устройстве
SI, 0F Shift In, вернуть цвет красящей ленты в печатающем устройстве обратно
DLE, 10 Data Link Escape, переключение канала на передачу данных
DC1, 11 DC2, 12DC3, 13DC4, 14 Device Control, символы управления устройствами
NAK, 15 Negative Acknowledgment, не подтверждаю.
SYN, 16 Synchronization. Символ синхронизации
ETB, 17 End of Text Block, конец текстового блока
CAN, 18 Cancel, отмена переданного ранее
EM, 19 End of Medium, конец носителя данных
SUB, 1A Substitute, подставить.
Ставится на месте символа, значение которого было потеряно или испорчено при передаче
ESC, 1B Escape Управляющая последовательность
FS, 1C File Separator, разделитель файлов
GS, 1D Group Separator, разделитель групп
RS, 1E Record Separator, разделитель записей
US, 1F Unit Separator, разделитель юнитов
DEL, 7F Delete, стереть последний символ.
 

Методика оптимизации программного кода 1С: проведение документов

Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С.
Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия.
К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).

1 стартмани

Инструкция по восстановлению кодировки

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

Однако исправить положение возможно самостоятельно, не прибегая к помощи специалистов.

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

С восьмой версии активно используют UTF-8.

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

Как правило, реестр используется для основательного решения проблемы:

  • Исправляем в строке на десятичное значение
  • Чтобы править, произошли ли изменения, достаточно открыть и снова вызвать командную строчку.

Таблицы[править]

Нижняя часть таблицы кодировки (латиница) полностью соответствует кодировке ASCII. Числа под буквами обозначают шестнадцатеричный код подходящего символа в Юникоде.

Кодировка Windows-1251 (синоним CP1251)править

.1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. Ђ402 Ѓ403 ‚201A ѓ453 „201E …2026 †2020 ‡2021 €20AC ‰2030 Љ409 ‹2039 Њ40A Ќ40C Ћ40B Џ40F
9. ђ452 ‘2018 ’2019 “201C ”201D •2022 –2013 —2014 2122 љ459 ›203A њ45A ќ45C ћ45B џ45F
A. A0 Ў40E ў45E Ј408 ¤A4 Ґ490 ¦A6 §A7 Ё401 A9 Є404 AB ¬AC ­AD AE Ї407
B. °B0 ±B1 І406 і456 ґ491 µB5 ¶B6 ·B7 ё451 №2116 є454 BB ј458 Ѕ405 ѕ455 ї457
C. А410 Б411 В412 Г413 Д414 Е415 Ж416 З417 И418 Й419 К41A Л41B М41C Н41D О41E П41F
D. Р420 С421 Т422 У423 Ф424 Х425 Ц426 Ч427 Ш428 Щ429 Ъ42A Ы42B Ь42C Э42D Ю42E Я42F
E. а430 б431 в432 г433 д434 е435 ж436 з437 и438 й439 к43A л43B м43C н43D о43E п43F
F. р440 с441 т442 у443 ф444 х445 ц446 ч447 ш448 щ449 ъ44A ы44B ь44C э44D ю44E я44F

Официальная кодировка Amiga-1251 (Amiga Inc., 2004 г.)править

.1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
A. A0 ¡A1 ¢A2 £A3 €20AC ¥A5 ¦A6 §A7 Ё401 A9 №2116 AB ¬AC ­AD AE ¯AF
B. °B0 ±B1 ²B2 ³B3 ´B4 µB5 ¶B6 ·B7 ё451 ¹B9 ºBA BB ¼BC ½BD ¾BE ¿BF

Кодировка CP1251-k (KazWin, казахская кодировка)править

.1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. Ұ4B0 Ғ492 ‚201A ғ493 „201E …2026 †2020 ‡2021 €20AC ‰2030 Ө4E8 ‹2039 Ң4A2 Қ49A Һ4BA Ү4AE
9. ұ4B1 ‘2018 ’2019 “201C ”201D •2022 –2013 —2014 2122 ө4E9 ›203A ң4A3 қ49B һ4BB ү4AF
A. A0 Ў40E ў45E Җ496 ¤A4 Ҳ4B2 ¦A6 §A7 Ё401 A9 Є404 AB ¬AC ­AD AE Ї407
B. °B0 ±B1 І406 і456 ҳ4B3 µB5 ¶B6 ·B7 ё451 №2116 є454 BB җ497 Ә4D8 ә4D9 ї457

Кодировка Windows-1251 (чувашский вариант)править

.1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. Ђ402 Ѓ403 ‚201A ѓ453 „201E …2026 †2020 ‡2021 €20AC ‰2030 Љ409 ‹2039 Ӑ4D0 Ӗ4D6 Ҫ4AA Ӳ4F2
9. ђ452 ‘2018 ’2019 “201C ”201D •2022 –2013 —2014 2122 љ459 ›203A ӑ4D1 ӗ4D7 ҫ4AB ӳ4F3

Татарский вариантправить

Эта кодировка была официально принята в Татарстане в г.

.1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. Ә4D8 Ѓ403 ‚201A ѓ453 „201E …2026 †2020 ‡2021 €20AC ‰2030 Ө4E8 ‹2039 Ү4AE Җ496 Ң4A2 Һ4BA
9. ә4D9 ‘2018 ’2019 “201C ”201D •2022 –2013 —2014 2122 ө4E9 ›203A ү4AF җ497 ң4A3 һ4BB

Кодировка символов в PowerShell Core

В PowerShell Core (V6 и более поздних версий) параметр Encoding поддерживает следующие значения:

  • : Использует кодировку для набора символов ASCII (7-разрядных).
  • : Кодируется в формате UTF-16 с обратным порядком байтов.
  • : Использует кодировку по умолчанию для программ MS-DOS и консолей.
  • : Кодируется в формате UTF-16 с прямым порядком байтов.
  • : Кодируется в формате UTF-7.
  • : Кодирует в формате UTF-8 (без спецификации).
  • : Кодирует в формате UTF-8 с меткой порядка байтов (BOM)
  • : Кодирует в формате UTF-8 без метки порядка байтов (BOM)
  • : Кодируется в формате UTF-32.

По умолчанию PowerShell Core имеет значение для всех выходных данных.

Начиная с PowerShell 6,2, параметр кодировки также разрешает числовые идентификаторы зарегистрированных кодовых страниц (например ,) или строковых имен зарегистрированных кодовых страниц (например ,). Дополнительные сведения см. в документации .NET по кодированию. codepage.

О программе

Здравствуйте! Эта страница может пригодиться, если вам прислали текст (предположительно на кириллице), который отображается в виде странной комбинации загадочных символов. Программа попытается угадать кодировку, а если не получится, покажет примеры всех комбинаций кодировок, чтобы вы могли выбрать подходящую.

Использование

  • Скопируйте текст в большое текстовое поле дешифратора. Несколько первых слов будут проанализированы, поэтому желательно, чтобы в них содержалась (закодированная) кириллица.
  • Программа попытается декодировать текст и выведет результат в нижнее поле.
  • В случае удачной перекодировки вы увидите текст в кириллице, который можно при необходимости скопировать и сохранить.
  • В случае неудачной перекодировки (текст не в кириллице, состоящий из тех же или других нечитаемых символов) можно выбрать из нового выпадающего списка вариант в кириллице (если их несколько, выбирайте самый длинный). Нажав OK вы получите корректный перекодированный текст.
  • Если текст перекодирован лишь частично, попробуйте выбрать другие варианты кириллицы из выпадающего списка.

Ограничения

  • Если текст состоит из вопросительных знаков («???? ?? ??????»), то проблема скорее всего на стороне отправителя и восстановить текст не получится. Попросите отправителя послать текст заново, желательно в формате простого текстового файла или в документе LibreOffice/OpenOffice/MSOffice.
  • Не любой текст может быть гарантированно декодирован, даже если есть вы уверены на 100%, что он написан в кириллице.

  • Анализируемый и декодированный тексты ограничены размером в 100 Кб.
  • Программа не всегда дает стопроцентную точность: при перекодировке из одной кодовой страницы в другую могут пропасть некоторые символы, такие как болгарские кавычки, реже отдельные буквы и т.п.
  • Программа проверяет максимум 7245 вариантов из двух и трех перекодировок: если имело место многократное перекодирование вроде koi8(utf(cp1251(utf))), оно не будет распознано или проверено. Обычно возможные и отображаемые верные варианты находятся между 32 и 255.
  • Если части текста закодированы в разных кодировках, программа сможет распознать только одну часть за раз.

Условия использования

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

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

Переводчики

Русский (Russian) : chAlx ; Пётр Васильев (http://yonyonson.livejournal.com/)

Страница подготовки переводов на другие языки находится тут.

Что нового

October 2013 : I am trying different optimizations for the system which should make the decoder run faster and handle more text. If you notice any problem, please notify me ASAP.

На английской версии страницы доступен changelog программы.

Вернуться к кириллической виртуальной клавиатуре.