Отличие utf-8 и windows 1251
Содержание:
- Пометка порядка байтовThe byte-order-mark
- Страхи перед UTF-8
- Спасшая статья:
- Примеры[править]
- Решения проблемы с кодировкой в CMD. 2 Способ.
- Проблемы с кодировкой не только в HTML-странице
- Неправильная кодировка результатов из базы данных MySQL
- Конфликт кодировок
- Решения проблемы с кодировкой в CMD. 1 Способ.
- Таблица кодов символов Windows-1251
- Таблицы
- Где указать кодировку сайта
- Проблемы консолей Visual Studio
Пометка порядка байтовThe byte-order-mark
Символ-пометка (BOM) — это сигнатура в Юникоде в первых нескольких байтах файла или текстового потока, указывающих, какая кодировка Юникода используется для данных.The byte-order-mark (BOM) is a Unicode signature in the first few bytes of a file or text stream that indicate which Unicode encoding used for the data. Дополнительные сведения см. в документации по метке порядка байтов .For more information, see the Byte order mark documentation.
В Windows PowerShell любая Кодировка Юникода, за исключением , всегда создает спецификацию.In Windows PowerShell, any Unicode encoding, except , always creates a BOM. По умолчанию PowerShell Core имеет значение для всех текстовых выходных данных.PowerShell Core defaults to for all text output.
Для обеспечения оптимальной совместимости Избегайте использования спецификаций в файлах UTF-8.For best overall compatibility, avoid using BOMs in UTF-8 files. Платформы UNIX и служебные программы Unix-Heritage, которые также используются на платформах Windows, не поддерживают спецификации.Unix platforms and Unix-heritage utilities also used on Windows Platforms don’t support BOMs.
Аналогичным образом следует избегать кодирования.Similarly, encoding should be avoided. UTF-7 не является стандартной кодировкой Юникода и записывается без спецификации во всех версиях PowerShell.UTF-7 is not a standard Unicode encoding and is written without a BOM in all versions of PowerShell.
Создание сценариев PowerShell на платформе, похожем на UNIX, или использовании кросс-платформенного редактора в Windows, например Visual Studio Code, приводит к созданию файла, закодированного с помощью .Creating PowerShell scripts on a Unix-like platform or using a cross-platform editor on Windows, such as Visual Studio Code, results in a file encoded using . Эти файлы прекрасно работают в PowerShell Core, но могут нарушить работу Windows PowerShell, если файл содержит символы, отличные от ASCII.These files work fine on PowerShell Core, but may break in Windows PowerShell if the file contains non-Ascii characters.
Если в скриптах необходимо использовать символы, отличные от ASCII, сохраните их как UTF-8 с помощью BOM.If you need to use non-Ascii characters in your scripts, save them as UTF-8 with BOM. Без спецификации Windows PowerShell ошибочно интерпретирует скрипт как закодированный в устаревшей кодовой странице ANSI.Without the BOM, Windows PowerShell misinterprets your script as being encoded in the legacy «ANSI» codepage. И наоборот, файлы, имеющие СПЕЦИФИКАЦИю UTF-8, могут быть проблематичными для платформ, подобных Unix.Conversely, files that do have the UTF-8 BOM can be problematic on Unix-like platforms. Многие средства UNIX, такие как ,, и некоторые редакторы, например, не узнают, как обрабатывать спецификацию.Many Unix tools such as , , , and some editors such as don’t know how to treat the BOM.
Страхи перед UTF-8
- Не поддержка старых (рабочих) проектов кодировки UTF-8. (Давайте еще ДОС вспомним). Ориентироваться на старые продукты, считаю полностью утопично.
- Один символ кириллицы в cp1251 занимает 1 байт, а в utf-8 — 2 байта. Как ни странно данный факт сильно отталкивает, и отталкивал меня долгое время от начало использования данной кодировки. Как показала практика в среднем UTF страница на русском языке больше, чем стандартная cp1251 всего на 20-30 процентов. Если текст на английском, то страница одинакового размера. Чаще всего — основной вес страницы составляет HTML код, JavaScript, Flash, картинки, CSS и так далее. Тем, кто заботится о «весе», следовало бы в первую очередь выкинуть из кода подстановки для тех символов, которым они не нужны, например, «- » для длинного тире или для неразрывного пробела (ой, как часто я вижу это в страницах новичков). Видим, что вместо 1 знака длинного тире мы пишем 6, вместо 1 знака неразрывного пробела мы пишем 5 знаков. И где же экономия? Действительно, иногда доходит до маразма — некто упирается: «Не буду делать страницы в UTF-8, потому что они от этого увеличиваются» — а сам при этом ваяет код с жуткими атрибутами и подстановками, который без них мог бы быть в пять раз короче. Также у 90 процентов WEB программистов HTML страницы просто не оптимизированы, даже пробелы не убраны из кода. А пробел это тоже байтик!
- отображения крокозябликов в любимых стареньких программах, таких как Far. Не знаю почему, но far так не сумел приучить читать корректно данную кодировку даже в последнем beta релизе Far 2.0.
Спасшая статья:
Приложение cmd.exe – это командная строка или программная оболочка с текстовым интерфейсом (во загнул ).
Запустить командную строку можно следующим способом: Пуск → Выполнить → вводим в поле команду – cmd и жмем ОК. В итоге откроется рабочее окно программы – c:WINDOWSsystem32cmd.exe. ( рис.1)
Если Вы занялись проблемой кодировки шрифтов в cmd.exe , то как запускать командную строку наверняка уже знаете
Перейдем собственно к проблеме: иногда вместо русских букв при выполнении команд выходит набор непонятных символов ( рис.2).
Первым делом нужно зайти в свойства окна – правой кнопкой щелкнуть по верхней части окна → Свойства → выйдет окно рис.3, здесь в поле Шрифтвыбираем Luc >ОК.
Теперь Вы получили нормальный текст на русском языке. Так же можно поменять текущую кодировку шрифта, для этого используется команда chcp. Набираем эту команду и жмем Enter, в результате получим текущую кодировку для командной строки – рис.4.
Для изменения кодировки так же применим chcp в следующем формате:
Где – это цифровой параметр нужного шрифта, например,
1251 – Windows (кириллица);
Выбирайте на любой вкус. Т.о. что бы изменить кодировку на UTF-8 нужно выполнить команду chcp 65001.
almixРазработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Как корректно отобразить Русский текст в CMD. Проблемы с кодировкой могут возникнуть, например, при выполнении Bat файла, когда нужно вывести в консоль русский текст и при других обстоятельствах, о которых речь пойдёт далее.
Рассмотрим пример: когда нужно вывести в консоль Русский текст, скажем «Примет мир». Для этого создадим Bat файл с именем «1.bat». Используйте для этого обычный Блокнот Windows (Notepad.exe) Запишем в него следующие строки!
Для тех, кто не понял или не в курсе, строчки «echo.» я добавил специально, что бы были отступы, от строки «Примет мир»
Теперь запускаем файл 1.bat и результат будет такого вида.
Как видим проблема с кодировкой в cmd на лицо. И произошло это по следующей причине.
Стандартный блокнот Windows сохранил Bat файл в кодировке «1251» а консоль вывела его в кодировки «866». Вот от сюда все проблемы!
Примеры[править]
Если записать строку ‘hello мир’ в файл exampleBOM, а затем сделать его hex-дамп, то можно убедиться в том, что разные символы кодируются разным количеством байт. Например, английские буквы,пробел, знаки препинания и пр. кодируются одним байтом, а русские буквы — двумя
Код на pythonправить
#!/usr/bin/env python #coding:utf-8 import codecs f = open('exampleBOM','w') b = u'hello мир' f.write(codecs.BOM_UTF8) f.write(b.encode('utf-8')) f.close()
hex-дамп файла exampleBOMправить
Символ | BOM | h | e | l | l | o | Пробел | м | и | р | |||||
Код в UNICODE | EF | BB | BF | 68 | 65 | 6C | 6C | 6F | 20 | D0 | BC | D0 | B8 | D1 | 80 |
Код в UTF-8 | 11101111 | 10111011 | 10111111 | 01101000 | 01100101 | 01101100 | 01101100 | 01101111 | 00100000 | 11010000 | 10111100 | 11010000 | 10111000 | 11010001 | 10000000 |
Решения проблемы с кодировкой в CMD. 2 Способ.
Теперь рассмотрим ещё одну ситуацию, когда могут возникнуть проблемы с кодировкой в CMD.
Допустим, ситуация требует сохранить результат выполнения той или иной команды в обычный «TXT» файл. В приделах этого поста возьмём для примера команду «HELP».
Задача : Сохранить справку CMD в файл «HelpCMD.txt. Для этого создайте Bat файл и запишите в него следующие строки.
После выполнения Bat файла в корне диска «C:» появится файл «HelpCMD.txt» и вместо справки получится вот что:
Естественно, такой вариант не кому не понравится и что бы сохранить справку в понятном для человека виде, допишите в Bat файл строку.
Теперь содержимое кода будет такое.
После выполнения «Батника» результат будет такой:
Вот так на много лучше, правда?
Пожалуй, на этом я закончу пост. Добавить больше нечего. Если у Вас имеются какие-то соображения по данной теме, буду рад Вашему комментарию к посту.
Дополнительно из комментариев то Garric
Автор очень хорошо описал принцип. ! Но это неудобно. Нужно бы добавить. Если автор добавит это в статью то это будет Good. Создаём файл .reg следующего содержания: —— Windows Registry Editor Version 5.00
«FileName»=»BATНастроенная кодировка.bat» —— Выполняем. —— Топаем в %SystemRoot%SHELLNEW Создаём там файл «BATНастроенная кодировка.bat» Открываем в Notepad++ Вводим любой текст. (нужно!) Сохраняемся. Удаляем текст. Меняем кодировку как сказано в статье. Сохраняемся. ———- Щёлкаем правой кнопкой мыши по Рабочему столу. Нажимаем «Создать» — «Пакетный файл Windows». Переименовываем. Открываем в Notepad++. Пишем батник. В дальнейшем при работе с файлом не нажимаем ничего кроме как просто «Сохранить». Никаких «Сохранить как».
Проблемы с кодировкой не только в HTML-странице
Сайт, независимо от того является ли он просто набором статических HTML-документов или сложных динамических скриптов генерирующих страницы на лету, размещается на веб-сервере, который также работает с определенной кодировкой. И если сервер выдает информацию в одной кодировке, а ваши страницы или скрипты сохранены в другой кодировке, то опять же могут быть проблемы с отображением страниц в браузере пользователя. Многие хостинги позволяют менять настройки и выбрать кодировку в соответствии с той, которая используется в файлах сайта, через панель управления или же прописать ее в файле .htaccess, если на хостинге используется популярный веб-сервер Apache.
Практически ни один современный сайт не обходится без использования базы данных MySQL и она также может стать источником проблем с кодировкой. Если файлы сайта сохранены в одной кодировке, а информация в базе данных в другой, то на странице та часть информации, которая выводится из базы данных может отображаться в виде все тех же знаков вопросов или других непонятных символов. Чтобы избежать проблем с кодировкой она должна быть одинаковой для веб-сервера, базы данных MySQL, в скриптах, в HTML-страницах сайта и в META-теге, который прописывается в HTML-коде. Если есть проблемы с отображением текста, то проверяйте на наличие проблемы все выше перечисленное.
Неправильная кодировка результатов из базы данных MySQL
Если ваш сайт состоит из статической части (шаблон) и динамической, которая формируется из данных, получаемых из базы данных, то может возникнуть ситуация, когда часть сайта имеет правильную кодировку, а другая часть сайта имеет неправильную. В этом случае бесполезно менять настройки веб-сервера – поскольку всё равно часть страницы будет иметь неправильную кодировку.
Нужно начать с определения кодировки ваших таблиц. Можно посмотреть в phpMyAdmin:
Обратите внимание на столбец «Сравнение», запись «utf8_unicode_ci» означает, что используется кодировка UTF-8.
Можно подключиться к СУБД 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 вам нужно заменить на ту кодировку, которая используется для ваших таблиц.
Конфликт кодировок
Полностью локализованная консоль в идеале должна поддерживать все мыслимые и немыслимые кодировки приложений, включая свои собственные команды и команды Windows, меняя «на лету» кодовые страницы потоков ввода и вывода. Задача нетривиальная, а иногда и невозможная — кодовые страницы DOS (CP437, CP866) плохо совмещаются с кодовыми страницами Windows и Unicode.
История кодировок здесь: О кодировках и кодовых страницах / Хабр (habr.com)
Исторически кодовой страницей Windows является CP1251 (Windows-1251, ANSI, Windows-Cyr), уверенно вытесняемая 8-битной кодировкой Юникода CP65001 (UTF-8, Unicode Transformation Format), в которой выполняется большинство современных приложений, особенно кроссплатформенных. Между тем, в целях совместимости с устаревшими файловыми системами, именно в консоли Windows сохраняет базовые кодировки DOS — CP437 (DOSLatinUS, OEM) и русифицированную CP866 (AltDOS, OEM).
Поскольку в консоли постоянно происходит передача управления от приложений к собственно командному процессору и обратно, регулярно возникает «конфликт кодировок», наглядно иллюстрируемый таблица 1 и 2, сформированных следующим образом:
Были запущены три консоли — CMD, PS и WPS. В каждой консоли менялась кодовая страница с помощью команды CHCP, выполнялась команда Echo c двуязычной строкой в качестве параметра (табл. 1), а затем в консоли запускалось тестовое приложение, исходные файлы которого были созданы в кодировке UTF-8 (CP65001): первая строка формируется и направляется в поток главным модулем, вторая вызывается им же, формируется в подключаемой библиотеке классов и направляется в поток опять главным модулем, третья строка полностью формируется и направляется в поток подключаемой библиотекой.
Командную часть задания все консоли локализовали практически без сбоев во всех кодировках, за исключением: в WPS неверно отображена русскоязычная часть команды во всех кодировках.
Табл. 1. Результат выполнения команды консоли Echo ffffff фффффф
Вывод тестового приложения локализован лишь в 50% испытаний, как показано в табл.2.
Табл. 2. Результат запуска приложения LoggingConsole.Test
По умолчанию Windows устанавливает для консоли кодовые страницы DOS. Чаще всего CP437, иногда CP866. Актуальные версии командной строки cmd.exe способны локализовать приложения на основе русифицированной кодовой страницы 866, но не 437, отсюда и изначальный конфликт кодировок консоли и приложения. Поэтому
Решения проблемы с кодировкой в CMD. 1 Способ.
Для решения проблемы нужно просто использовать текстовой редактор, с помощью которого можно сохранить текст в кодировке «866». Для этих целей прекрасно подходит «Notepad++» (Ссылку для загрузки Вы можете найти в моём Twitter-e).
Скачиваем и устанавливаем на свой компьютер «Notepad++».
После запуска «Notepad++» запишете в документ те же строки, которые мы уже ранние записывали в стандартный блокнот.
Теперь осталось сохранить документ с именем «2.bat» в правильной кодировке. Для этого идём в меню «Кодировки > Кодировки > Кириллица > OEM-866»
и теперь сохраняем файл с именем «2.bat» и запускаем его! Поле запуска результат на лицо.
Как видим, текст на Русском в CMD отобразился, как положено.
Таблица кодов символов 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-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 | Њ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 |
Официальная кодировка KZ-1048 (казахский стандарт)
.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 | Қ49A | Һ4BA | Џ40F |
9. | ђ452 | ‘2018 | ’2019 | “201C | ”201D | •2022 | –2013 | —2014 | 2122 | љ459 | ›203A | њ45A | қ49B | һ4BB | џ45F | |
A. | A0 | Ұ4B0 | ұ4B1 | Ә4D8 | ¤A4 | Ө4E8 | ¦A6 | §A7 | Ё401 | A9 | Ғ492 | AB | ¬AC | AD | AE | Ү4AE |
B. | °B0 | ±B1 | І406 | і456 | ө4E9 | µB5 | ¶B6 | ·B7 | ё451 | №2116 | ғ493 | BB | ә4D9 | Ң4A2 | ң4A3 | ү4AF |
Кодировка 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 |
Где указать кодировку сайта
Если проблема возникла на вашем сайте, способ исправления зависит от вида сайта. Для одностраничника достаточно указать кодировку в мета-теге страницы, а для большого сайта есть разные варианты:
- кодировка в мета-теге;
- кодировка в .htaccess;
- кодировка документа;
- кодировка в базе данных MySQL.
Кодировка в мета-теге
Добавьте указание кодировки в head файла шаблона сайта.
При создании документа HTML укажите тег meta в начале в блоке head. Некоторые браузеры могут не распознать указание кодировки, если оно будет ниже.
Мета-тег может выглядеть так:
или так:
В HTML5 они эквивалентны.
Тег кодировки в HTML
В темах WordPress обычно тег «charset» с кодировкой указан по умолчанию, но лучше проверить.
Кодировка в файле httpd.conf
Инструкции для сервера находятся в файле httpd.conf, обычно его можно найти на пути «/usr/local/apache/conf/».
Если вам нужно сменить кодировку Windows-1251 на UTF-8, замените строчку «AddDefaultCharset windows-1251» на «AddDefaultCharset utf-8».
Убедитесь, что сервер не передает HTTP-заголовки с конфликтующими кодировками.
Кодировка в .htaccess
Добавьте кодировку в файл .htaccess:
- Откройте панель управления хостингом.
- Перейдите в корневую папку сайта.
- В файле .htaccess добавьте в самое начало код: для указания кодировки UTF-8 — AddDefaultCharset UTF-8;
- для указания кодировки Windows-1251 — AddDefaultCharset WINDOWS-1251.
Перейдите на сайт и очистите кэш браузера.
Кодировка документа
Готовые файлы HTML важно сохранять в нужной кодировке сайта. Узнать текущую кодировку файла можно через Notepad++: откройте файл и зайдите в «Encoding»
Меняется она там же: чтобы сменить кодировку на UTF-8, выберите «Convert to UTF-8 without BOOM». Нужно выбрать «без BOOM», чтобы не было пустых символов.
Проблемы консолей Visual Studio
В Visual Studio имеется возможность подключения консолей, по умолчанию подключены командная строка для разработчика и Windows PowerShell для разработчика. К достоинствам можно отнести возможности определения собственных параметров консоли, отдельных от общесистемных, а также запуск консоли непосредственно в директории разработки. В остальном — это обычные стандартные консоли Windows, включая, как показано ранее, установленную кодовую страницу по умолчанию.
Отдельной опцией Visual Studio является встроенная односеансная консоль отладки, которая перехватывает команду Visual Studio на запуск приложения, запускается сама, ожидает компиляцию приложения, запускает его и отдает ему управление. Таким образом, отладочная консоль в течение всего рабочего сеанса находится под управлением приложения и возможность использования команд Windows или самой консоли, включая команду CHCP, не предусмотрена. Более того, отладочная консоль не воспринимает кодовую страницу по умолчанию, определенную в реестре, и всегда запускается в кодировке 437 или 866.
Анализ проблем консолей был бы не полон без ответа на вопрос — можно ли запустить консольное приложение без консоли? Можно — любой файл «.exe» запустится двойным кликом, и даже откроется окно приложения. Однако консольное приложение, по крайней мере однопоточное, по двойному клику запустится, но консольный режим не поддержит — все консольные вводы-выводы будут проигнорированы, и приложение завершится