Кодировка текста ascii (windows 1251, cp866, koi8-r) и юникод (utf 8, 16, 32) — как исправить проблему с кракозябрами

Кодировки UTF-8 и Windows 1251 — просто о сложном

Оглавление

  • Немного теории
  • Недостатки и достоинства
  • Базы банных
  • Htaccess

Здравствуйте, уважаемые читатели моего блога. Сегодня мы поговорим с вами про кодировку. Если вы читали мою статью о том, как посмотреть код страницы в браузере, то знаете, что любой документ в интернете хранится не в том виде, в каком мы привыкли его видеть. Он записан при помощи непонятных человеку символов и знаков. С текстом все точно также.

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

Кодировка windows-1251 – что это такое, какое значение она имеет при создании сайта, какие символы будут доступны и является ли она лучшим решением на сегодняшний день? Обо всем этом в сегодняшней статье. Как всегда, простым языком, максимально понятно и с минимальным количеством терминов.

Немного теории

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

К примеру, если вы используете кодировку ASCII, то буква «К» будет записана как 10001010, а windows 1251 под этим числом скрывается символ – Љ.

В итоге, если браузер или программа обратится к другой таблице и считает вместо ASCII коды windows 1251, то читатель увидит совершенно непонятные ему символ.

Логичен вопрос, нафига было придумывать множество таблиц с кодами? Дело в том, что помимо русского алфавита существует еще и английский, немецкий, китайский. По некоторым подсчетам, существует около 200 000 символов. Хотя, я не очень доверяю этой статистике, вспоминая про японский.

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

Чем больше в таблице символов, тем длиннее код каждого из них, а значит и вес документа становится больше.

Представьте, если бы одна книга весила 4 Гб! Она бы очень долго загружалась, занимала все свободное место на компьютере. Решение о скачивании представлялось бы делом нелегким.

Если вспомнить о сайтах, то вообще страшно подумать, что бы произошло. Каждая страничка открывалась даже на скоростном оптоволокне по часу с лишним! Думаю, мобильные телефоны можно было бы смело выкидывать. Пользоваться ими на улице даже с 4G? Сомневаюсь.

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

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

Сейчас уже, лишь 2% всех страниц в интернете написано на 1251. Большинство веб-мастеров используют UTF-8. Почему так?

Недостатки и достоинства

UTF-8, в отличие от windows-1251 универсальная кодировка, в ней содержатся буквы различных алфавитов. Существует даже UTF-128, где есть вообще все языки – теулу, суахили, лаосский, мальтийский и так далее.

UTF-8 победнее, буквы занимают в разы меньше места и занимают всего один байт памяти, как и в 1251. В УТФ есть редкие символы из других языков или специальные символы. Они-то и весят по 5-6 байтов, но в документе используются крайне редко.

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

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

Для этого необходимо вставить в тег head следующие данные. После символов «charset=» идет либо утф, либо виндовс, как в примере ниже.

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

Если вас заинтересовало правильное создание сайта, то я могу порекомендовать вам курс Михаила Русакова «Создание и Раскрутка сайта от А до Я».

Он содержит в себе очень много – 256 уроков, затрагивающих HTML, CSS, JavaScript, PHP, MySQL и XML. Помимо языков программирования вы сможете понять как монетизировать сайт, то есть скорее и больше получать прибыль. Один из немногих курсов, в котором было бы так подробно разъяснено все, что нужно.

Сам я вот уже год обучаюсь в школе блоггеров Александра Борисова. Это занимает в разы больше времени, конца и края пока не видно, но зато не менее исчерпывающе и дисциплинирует. Мотивирует продолжать разработку.

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

Что-то я отошел от темы. Давайте вернемся к кодировкам.

Базы банных

Когда речь идет о php, все вообще страшно. Я уже рассказывал про базы данных, они используются для ускорения работы сайта. Обычно, вы к ним не обращаетесь, но когда появляется необходимость в переносе сайта становится не по себе.

Сложности случаются у всех, не важно какой у вас опыт работы, стаж и выслуга лет. Некоторые странички в базе могут содержать в себе все доступные символы для виндовс-1251, другие, к примеру, в шаблонах страниц, в другой кодировке.

Пока не нужен перенос все работает и функционирует, хоть и не совсем правильно. Но после переезда начинаются неприятности. В идеале вы должны использовать либо только УТФ, либо виндовс-1251, но по факту всегда и у всех случаются вот такие недочеты.

Чтобы расшифровка согласовалась необходимо вписать код mysql_query(«SET NAMES cp1251»). В этом случае преобразование будет осуществлять по другому протоколу – cp1251.

Htaccess

Если на сайте вы настойчиво решили использовать именно 1251, то вам следует найти или создать файл htaccess. Он отвечает за настройки конфигурации. В него придется добавить еще три строчки, чтобы все сошлось.

DefaultLanguage ru;
AddDefaultCharset windows-1251;
php_value default_charset «cp1251»

DefaultLanguage ru; AddDefaultCharset windows-1251; php_value default_charset «cp1251»

Я все же настоятельно рекомендую вам задумать о использовании UTF-8. Он более популярен, прост и богат. Какие бы решения вы не приняли сейчас, важно, чтобы впоследствии можно было все исправить. Добавить англоязычную версию сайта на этой кодировке будет в разы проще. Ничего не нужно исправлять.

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

Источник: http://start-luck.ru/obsluzhivanie-sayta/kodirovka-windows-1251.html

Кодировка

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

Кодировка, простыми словами — это таблица языковых символов.

Для удобства хранения в памяти компьютера каждый символ имеет свой адрес в таблице.

Отличный развернутый текст по теме кодировок представлен в статье «Кодировка текста и кракозябры — ASCII, юникод и UTF 8, расширенная ASCII (Windows 1251, CP866, KOI8-R), проблемы с кодировкой текстов».

Картинка из той статьи для ясности:

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

Кодировок существует море. Например, раньше основной кириллической кодировкой Windows была KOI8-R. Это еще в совсем незапамятные времена.

Читайте также:  Гипертекст — что это такое

В начале XXI века самой популярной стала Windows-1251, которая используется до сих пор.

Но проблема в том, что это узкоспециализированная на кириллице кодировка, поэтому многих общемировых символов в её таблице нет.

Ровно тоже самое было и с другими локальными кодировками.

Поэтому на смену им пришли Юникодовые кодировки, то есть универсальные. Чьи таблицы могли отобразить текст на любом языке мира.

Более подробно вы можете прочесть об этом в Вики:

http://ru.wikipedia.org/wiki/Юникод

Юникодовая кодировка UTF-8 на данный момент является самой распространённой, и мы работаем только с ней.

Почему? Если вы откроете свой сайт в кодировке Windows-1251, с компьютера из Японии, то вы не сможете его прочесть. Просто потому что у вашего знакомого японца на компьютере не установлена русская кодировка.

А универсальная юникодовая кодировка по-умолчанию ставится везде!

Запомните это название друзья, раз и на всю жизнь, — UTF-8.

Браузер

Программа, которой вы смотрите Интернет, умеет воспринимать кодировку по сигналу сервера. Но в прошлом уроке вы создали страницу на своем компьютере, никакого сервера нет.

И у некоторых после открытия она выглядела вот так:

Что же делать? Кричать «Караул!»? Без паники.

Вы можете исправить ситуацию несколькими способами.

Способ 1

Любой браузер дает возможность вручную переключать кодировку. Вот как это делается в Chrome (в остальных по аналогии):

Но это не лучший выход. Все равно, что лечить ангину леденцами. Вы правите следствие, но не устраняете первопричину.

Способ 2

Вставить внутри тега мета-тег кодировки:

Браузер, открывая страницу, прочитает его и выберет нужную кодировку.

Способ 3

Выше мы задали кодировку, в которой страницу трактует браузер.

Но можно задать кодировку самого текста в Notepad++.

Текущая указывается справа внизу окна:

ANSI — это родная кодовая страница Windows.

Поэтому в данном окне мы русские буквы видим нормально, а в браузере — нет.

Что можно сделать? Сменить кодировку на UTF-8.

Но в итоге перекодируется весь текст:

Нет, нам данный вариант не подходит.

Возвращаем обратно в прежнюю кодировку — Кодировки, Кодировать в ANSI.

Теперь копируем весь текст, нажимая Ctrl+A(выделить все) и Ctrl-X(вырезать).

Пустое окно редактора.

Выбирает — Кодировки, Кодировать в UTF-8.

И вот теперь жмем Ctrl+V, вставляя текст из буфера обмена.

Все, вот теперь порядок.

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

  1. Создавая новый документ, следите, чтобы он был в UTF-8 изначально.
  2. Если отображается в браузере неправильно, ставьте мета-тег. Способ 2.
  3. Способ 1 — он только для вас на конкретный момент. У других людей, открывших файл, могут быть проблемы.

Есть еще несколько способов, но они уже относятся к настройке сервера.Надеюсь, вы усвоили основные постулаты, и теперь знаете, как превратить иероглифы в родные русские буквы.

Источник: https://codemotion.ru/encoding-183.html

Что такое кодировка текста? Юникод и кодировки Utf-8, ANSI, Windows-1251

  Charsets

Часто в веб-программировании и вёрстке html-страниц приходится думать о кодировке редактируемого файла — ведь если кодировка выбрана неверная, то есть вероятность, что браузер не сможет автоматически её определить и в результате пользователь увидит т.н. «кракозябры».

Возможно, вы сами видели на некоторых сайтах вместо нормального текста непонятные символы и знаки вопроса. Всё это возникает тогда, когда кодировка html-страницы и кодировка самого файла этой страницы не совпадают.

Вообще, что такое кодировка текста? Это просто набор символов, по-английски «charset » (character set). Нужна она для того, чтобы текстовую информацию преобразовывать в биты данных и передавать, например, через Интернет.

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

Краткая история кодировок:

Одной из первых для передачи цифровой информации стало появление кодировки ASCII — American Standard Code for Information Interchange — Американская стандартная кодировочная таблица, принятая Американским национальным институтом стандартов — American National Standards Institute (ANSI).

В этих аббревиатурах можно запутатьсяДля практики же важно понимать, что исходная кодировка создаваемых текстовых файлов может не поддерживать все символы некоторых алфавитов (к примеру, иероглифы), потому идёт тенденция к переходу к т.н. стандарту Юникод (Unicode), который поддерживает универсальные кодировки — Utf-8, Utf-16, Utf-32 и др.

Самая популярная из кодировок Юникода — кодировка Utf-8. Обычно в ней сейчас верстаются страницы сайтов и пишутся разные скрипты.

Она позволяет без проблем отображать различные иероглифы, греческие буквы и прочие мыслимые и немыслимые символы (размер символа до 4-х байт). В частности, все файлы WordPress и Joomla пишутся именно в этой кодировке.

А также некоторые веб-технологии (в частности, AJAX) способны нормально обрабатывать только символы utf-8.

  Установка кодировок текстового файла при создании его обычным блокнотом. Кликабельно

В Рунете же ещё можно встретить сайты, написанные с расчётом на кодировку Windows-1251 (или cp-1251). Это специальная кодировка, предназначенная специально для кириллицы.

Почему вообще необходимо иметь представление о разных кодировках? Дело в том, что нередко на том же WordPress можно встретить, например, в Footer’е знаки вопроса вместо нормального текста. Это просто говорит о том, что php-файл Footer’а сохранён в одной кодировке, а в заголовке html-страницы указана совсем другая кодировка. Прочитайте — как сменить кодировку файла и что в этом поможет.

(1

Источник: http://web-ru.net/sajtostroenie/texnicheskie-momenty/chto-takoe-kodirovka-teksta-yunikod-i-kodirovki-utf-8-ansi-windows-1251.html

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

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

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

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

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

DecHexСимволDecHexСимвол
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 я
Читайте также:  Финстрип ktonanovenkogo.ru — доходы с рся, получаемые в профит партнере до 2012 года (от 1200 до 124000 рублей за месяц)

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

Первоначально управляющие символы таблицы 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, стереть последний символ.

Источник: http://wm-school.ru/html/html_win-1251.html

Выбираем кодировку: Windows-1251 или UTF-8

На днях пришлось решать небольшую проблему с плохой восприимчивостью комплекта Denwer к кодировки UTF-8. Проблема, честно говоря, оказалась пустяковая, и была решена минут за 15, 10 из которых заняло использование Гугла.

В этом время, исследуя различные форумы, я заметил, что для многие не могут разобраться с этой проблемой достаточно долго. Кроме того, понял, что многих интересует зачем вообще использовать UTF-8, если есть прекрасная такая “русская” кодировка Windows-1251. Вот и решил написать пару постов на эту тему.

Начну я с общего описания данных кодировок, а продолжу, непосредственно, описанием решения проблемы использования UTF-8 на пакете Denwer.

Не так давно, в связи со сложившимися обстоятельствами, решил отказаться от кодировки Windows-1251, с которой работал очень давно, и целиком и полностью перейти на UTF-8. Все причины перехода раскрывать не буду, но основные из них:

  • большинство современных веб-платформ по-умолчанию работают именно на ней;
  • её очень удобно использовать для создания мультиязычных проектов;
  • набор используемых в кодировки символов около 100000;
  • кодировка универсальная, т.е. русские символы и в Никарагуа остаются русскими.

Далее постараюсь написать несколько слов об основных отличиях кодировок Windows-1251 и UTF-8, а так же, в качестве бонуса, примеры объявления кодировки в HTML, PHP и для работы с базами данных MySQL.

Немного теории

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

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

UTF-8 – в настоящее время распространённая кодировка, реализующая представление Юникода, совместимое с 8-битным кодированием текста. Нашла широкое применение в операционных системах и веб-пространстве.

Текст, состоящий только из символов Юникода с номерами меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. Остальные символы Юникода изображаются последовательностями длиной от 2 до 6 байт.

Основные отличия кодировок

Главное отличие кодировок – это используемый набор символов. В UTF-8 гораздо больше количество символов возможно представить, чем в Windows- 1251. Кодировка Windows- 1251 однобайтовая, т.е. представить в ней можно только 255 символов. Для кириллицы, впрочем, этого вполне достаточно, именно поэтому однобайтовые кодировки до сих пор так массово применяются.

Символ в кодировке UTF-8 может кодироваться аж 6 байтами (пока используется только 4 и больше не планируется). Для русского языка, например, символ занимает 2 байта. Все символы, которые есть в таблице символов – поддерживаются этой кодировкой. К примеру, если вам нужен знак копирайта (©), то вам не нужно искать особый шрифт или же изображать символов в графическом формате.

Читайте также:  Рейтинг лучших платежных систем и криптовалют мира

Плюсы UTF-8:

  • UTF-8 позволяет работать одновременно с несколькими языками, т.е. выдавать тексты, в которых используются символы разных алфавитов и даже иероглифы. С использованием кодировки 1251 это невозможно;
  • использование UTF-8 позволяет отказаться от кодовых таблиц, трансляций символов и всех прочих извращений, что были ранее с однобайтовыми кодировками;
  • Нет кучи кодировок для одного и того же языка, как это было ранее для русского: cp1251, cp866, koi8r, iso8859-5.

Минусы UTF-8…

А есть ли они у этой кодировки вообще? Я знаю только разных мифах и легендах на эту тему, вот некоторые из них: “У UTF-8 есть проблемы со старыми браузерами” – маловероятно… Во всяком случае, если под старыми не подразумевают Lynx и Mosaic _); “С UTF-8 возникают проблемы на сервере” – ну да, если сервер по-умолчанию пытается определить другую кодировку. Но это не минус кодировки, уж точно…

Источник: http://www.mindnotes.ru/server-i-hosting/vybiraem-kodirovku-windows-1251-ili-utf-8

Проблемы с кодировкой на сайте

Вы здесь: Главная — PHP — PHP Основы — Проблемы с кодировкой на сайте

Одной из самых частых проблем, с которой сталкивается начинающий Web-мастер (да и не только начинающие), это проблемы с кодировкой на сайте.

Даже у меня постоянно появляется при создании сайтов «абракадабра«. Но, благо, я прекрасно знаю, как эту проблему решить, поэтому всё привожу в порядок в течение нескольких секунд.

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

Первое, что стоит отметить, это то, что все проблемы с появлением «абракадабры» связаны с несовпадением кодировки документа и кодировки, выставляемой браузером. Допустим, документ в windows-1251, а браузер почему-то выставляет UTF-8. А уже источником такого несовпадения могут быть следующие причины.

Первая причина

Неправильно прописан мета-тег content-type. Будьте внимательны, в нём всегда должна находиться та кодировка, в котором написан Ваш документ.

Вторая причина

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

Если Вы работаете в Notepad++, то внизу справа есть название кодировки текущего документа (например, ANSI).

Если Вы ставите в мета-теге UTF-8, а сам документ написан в ANSI, то сделайте преобразование в UTF-8 (через меню «Кодировки» и пункт «Преобразовать в UTF-8 без BOM«).

Третья причина

Мета-тег написан правильно, кодировка документа верная, но браузер почему-то настойчиво выбирает другую кодировку. Это уже связано с настройками сервера. Способ решения данной проблемы можно прочитать здесь: как задать кодировку в htaccess.

Четвёртая причина

И, наконец, последняя популярная причина — это проблема с кодировкой в базе данных. Во-первых, убедитесь, что все Ваши таблицы и поля написаны в одной кодировке, которая совпадает с кодировкой остального сайта. Если это не помогло, то сразу после подключения в скрипте выполните следующий запрос:

SET NAMES 'utf8'

Вместо «utf8» может стоять другая кодировка. После этого все данные из базы должны выходить в правильной кодировке.

В данной статье я, надеюсь, разобрал, как минимум, 90% проблем, связанных с появлением «абракадабры» на сайте. Теперь Вы должны расправляться с такой популярной и простой проблемой, как неправильная кодировка, в два счёта.

Предыдущая статья Следующая статья

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так:<\p>

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Источник: https://MyRusakov.ru/php-encoding-problems.html

Кодировка сайта | Что такое кодировка Юникод

Кодировка сайта (Encoding) представляет собой соответствие числового ряда символам (числа, буквы, знаки и другие спецсимволы). Наиболее распространенными кодировками считаются ASCII совместно с Юникодом UTF-8 и Windows-1251. В контенте за кодировку отвечает специальный мета-тег: , который устанавливает определенный тип кода для страниц. В данном случае это юникод UTF-8.

Что такое кодировка сайта

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

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

Основная причина этого явления – провайдер не поддерживает предоставленный вид кодировки, вследствие чего оправляет «свою», что собственно и приводит к некорректным отображениям информации. Кодировка — это таблица, в которой описывается любое соответствие конкретного символа и числа.

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

Виды кодировок сайта

Всего в мире интернета существует несколько видов кодировок:

  • ASCII – самая первая кодировка, которая была принята Американским национальным институтом мировых стандартов. Для кодировки использовалось всего 7 бит, где впервые 128 значения размещается English алфавит, а также все числа, знаки и символы. Данная кодировка не является универсальной и чаще всего использовалась на англоязычных сайтах.
  • Кириллица – истинно отечественный вариант. Кодировка использовала вторую часть основной кодовой таблицы, а точнее знаков с 129 по 256. Используется на русскоязычных сайтах и блогах.
  • Кодировки 1250-1258 (системы MS Windows и Windows) – стандартные 8-ми битные кодировки, которые появились сразу после выхода известной операционной системы Microsoft Windows. Числа 1250 по 1258 направлены на используемый кодировкой язык. 1250 – это языки центральной Европы, а 1251 вариант для кириллического алфавита.
  • КОИ8 – расшифровывается как код обмена информацией 8-ми битный. Обычно применяются стандарты русской кириллицы в системах Юникс и подобных, где действует стандарт KOI-7, KOI8-R и KOI8-U.
  • Юникод (оригинальное название Unicode) – является известным стандартом для кодирования символов, который позволяет описывать знаки буквально всех мировых языков. Часто обозначается «U+xxxx», где «хххх» — это 16-ричные значения. Наиболее распространенным семейством данной кодировки считается UTF (Unicode-Transformation Format), то есть UTF-8, 16 и 32.

Каждый отдельный вид может использоваться непосредственно на любом сайте.

Универсальные и популярные кодировки

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

Источник: http://Cropas.by/seo-slovar/kodirovka-sajta/

Ссылка на основную публикацию