Что значит кодировка

Содержание

Что нужно знать каждому разработчику о кодировках и наборах символов для работы с текстом

Что значит кодировка

Это первая часть перевода статьи What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text Если вы работаете с текстом в компьютере, вам обязательно нужно знать про кодировки. Даже если вы посылаете электронные письма.

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

Статья Джоеэля Спольски под названием «Абсолютный минимум о Unicode и наборе символов для каждого разработчика(без исключений!)» будет хорошей вводной и мне доставляет большое удовольствие перечитывать ее время от времени.

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

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

Основы

Все более или менее слышали об этом, но каким-то образом знание испаряется, когда дело доходит до обсуждения, так что вот вам: компьютер не может хранить буквы, числа, картинки или что-либо еще. Он может запомнить только биты. Бит имеет только два значения: ДА или НЕТ, ПРАВДА или ЛОЖЬ, 1 или 0 или любую другую пару, которую вы можете вообразить.

Раз уж компьютер работает с электричеством, бит представлен электрическим зарядом: он либо есть, либо его нет. Людям проще представлять это в виде 1 и 0, так что я буду придерживаться этих обозначений. Чтобы с помощью битов представлять нечно полезное, нам нужны правила.

Надо сконвертировать последовательность бит в что-то похожее на буквы, числа и изображения, используя схему кодирования, или, коротко, кодировку. Вот так, например: 01100010 01101001 01110100 01110011
b i t s В этой кодировке, 01100010 представляет из себя ‘b’, 01101001 — ‘i’, 01110100 — ‘t’, 01110011 — ‘s’.

Конкретная последовательность бит соответствует букве, а буква – конкретной последовательности битов. Если вы можете запомнить последовательности для 26 букв или умеете действительно быстро находить нужное соответствие, то вы сможете читать биты, как книги. Упомянутая схема носит название ASCII. Строка с нолями и единицами разбивается на части по 8 бит(по байтам).

Кодировка ASCII определяет таблицу перевода байтов в человеческие буквы. Вот небольшой кусочек этой таблицы: bits character 01000001 A 01000010 B 01000011 C 01000100 D 01000101 E

01000110 F

В ней 95 символов, включая буквы от A до Z, в нижнем и верхнем регистре, цифры от 0 до 9, с десяток знаков препинания, амперсанд, знак доллара и прочие. В нее также включены 33 значения, такие как пробел, табуляция, перевод строки, возврат символа и прочие. Это непечатаемые символы, хотя они видимы человеку и используются им. Некоторые значения полезны только компьютеру, такие как коды начала и конца текста. Всего в кодировку ASCII включены 128 символов — прекрасное ровное число для тех, кто смыслит в компьютерах, так как оно использует все комбинации 7ми битов (от 0000000 до 1111111). Вот вам способ представить человеческую строку, используя только единицы и нули: 01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100 «Hello World»

Важные термины

Для кодирования чего-либо в ASCII двигайтесь справа налево, подменяя буквы на биты. Для декодирования битов в символы, следуйте по таблице слева направо, подменяя биты на буквы. encode |enˈkōd| verb [ with obj. ] convert into a coded form

code |kōd|

noun

a system of words, letters, figures, or other symbols substituted for other words, letters, etc.

Кодирование – это представление чего-либо чем-нибудь другим. Кодировка – это набор правил, описывающий способ перевода одного представления в другое. Прочие термины, заслуживающие прояснения:

Набор символов, чарсет, charset – Набор символов, который может быть закодирован. «Кодировка ASCII включает набор из 128 символов». Синоним к кодировке.

Кодовая страница – страница кодов, закрепляюшая за символом набор битов. Таблица. Синоним к кодировке.

Строка – пачка чего-нибудь, объединенных вместе. Битовая строка – это пачка бит, такая как 00011011. Символьная строка – это пачка символов, например «Вот эта». Синоним к последовательности.

Двоичный, восьмеричный, десятичный, шестнадцатеричный

Существует множество способов записывать числа. 10011111 – это бинарная запись для 237 в восьмеричной, 159 в десятичной и 9F в шестнадцатиричной системах.

Значения у всех этих чисел одинаково, но шестнадцатиричная система короче и проще для понимания, чем двоичная. Я буду придерживаться двоичной системы в этой статье, чтобы улучшить понимание и убрать лишний уровень абстракции.

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

Excusez-Moi?

Раз уж мы теперь знаем, о чем говорим, заметим: 95 символов – это совсем немного, когда речь идет о языках. Этот набор покрывает базовый английский, но как насчет французских символов? А вот это Straßen¬übergangs¬änderungs¬gesetz из немецкого языка? А приглашение на smörgåsbord в шведском? В-общем, не получится. Не в ASCII.

Спецификация на представление é, ß, ü, ä, ö просто отсутствует. “Постойте-ка”, скажут европейцы, “в обычных компьютерах с 8 битами в байте, ASCII никак не использует бит, который всегда равен 0! Мы можем использовать его, чтобы расширить таблицу еще на 128 значений”. И было так. Но способов обозначить звучание гласных еще слишком много.

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

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

Как только вы найдете способ писать документ, использующий несколько языков, попробуйте добавить китайский. Или японский. Оба содержат тысячи символов. И у вас всего 256 значений. Вперед!

Многобайтные кодировки

Для создания таблиц, которые содержат более 256 символов, одного байта просто недостаточно. Двух байтов (16 бит) хватит для кодировки 65536 различных значений. Big-5 например, кодировка двухбайтная.

Вместо разбиения последовательности битов в блоки по 8, она использует блоки по 16 битов и содержит большую(я имею ввиду БОЛЬШУЮ) таблицу с соответствием. Big-5 в своем основном виде покрывает большинство символов традиционного китайского.

GB18030 – это похожая кодировка, но она включает как традиционный, так и упрощенный китайский. И, прежде чем вы спросите, да, есть кодировки только для упрощенного китайского.

А разве одной недостаточно? Вот кусок таблицы GB18030: bits character 10000001 01000000 丂 10000001 01000001 丄 10000001 01000010 丅 10000001 01000011 丆 10000001 01000100 丏 GB18030 покрывает довольно большой диапазон символов, включая большую часть латинских символов, но в конце концов, это всего лишь еще одна кодировка среди многих других.

Путаница с Unicode

В итоге тем, кому больше всех надоела эта каша, пришла в голову идея разработать единый стандарт, объединяющий все кодировки. Этим стандартом стал Unicode. Он определяет невероятную таблицу из 1 114 112 пунктов, используемую для всех вариантов букв и символов.

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

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

Итак, и сколько же байт использует Unicode для кодирования? Нисколько.

Потому что Unicode – это не кодировка.

Смущены? Не вы одни. Unicode в первую и главную очередь определяет таблицу пунктов для символов. Это такой способ сказать «65 – A, 66 – B, 9731 – »(я не шучу, так и есть). Как эти пункты кодируются в байты является предметом другого разговора. Для представления 1 114 112 значений двух байт недостаточно. Трех достаточно, но 3 – странное число, так что 4 является комфортным минимумом. Но, пока вы не используете китайский, или другой язык со множеством символов, которые требуют большого количества битов для кодирования, вам никогда не придет в голову использовать толстую колбасу из 4х байт. Если “A” всегда кодируется в 00000000 00000000 00000000 01000001, а “B” – в 00000000 00000000 00000000 01000010, то документ, использующий такую кодировку, распухнет в 4 раза. Существует несколько способов решения этой проблемы. UTF-32 – это кодировка, которая переводит все символы в наборы из 32 бит. Это простой алгоритм, но изводящий много места впустую. UTF-16 и UTF-8 являются кодировками с переменной длиной кодирования. Если символ может быть закодирован одним байтом(потому что номер пункта символа очень маленький), UTF-8 закодирует его одним байтом. Если нужно 2 байта, то используется 2 байта. Кодировка сообщает старшими битами, сколькими битами кодируется текущий символ. Такой способ экономит место, но так же и тратит его в случае, если эти сигнальные биты часто используются. UTF-16 является компромиссом: все символы как минимум двухбайтные, но их размер может увеличиваться до 4 байт, если нужно. character encoding bits A UTF-8 01000001 A UTF-16 00000000 01000001 A UTF-32 00000000 00000000 00000000 01000001 あ UTF-8 11100011 10000001 10000010 あ UTF-16 00110000 01000010 あ UTF-32 00000000 00000000 00110000 01000010 И все. Unicode – это огромная таблица соответствия символов и чисел, а различные UTF кодировки определяют, как эти числа переводятся в биты. В-общем, Unicode – это просто еще одна схема. Ничего особенного, она просто пытается покрыть все, что можно, оставаясь эффективной. И это хорошо.

Пункты

Символы определяются по их Unicode-пунктам. Эти пункты записаны в шестнадцатеричной системе и предварены “ U+” (просто для удобство, не значит ничего, кроме “Это пункт Unicode”). Символ Ḁ имеет пункт U+1E00. Иными(десятичными) словами, это 7680й символ таблицы Unicode. Он официально называется “ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА А С КОЛЬЦОМ СНИЗУ”.

Ниасилил

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

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

bits encoding characters 11000100 01000010 Windows Latin 1 ÄB 11000100 01000010 Mac Roman ƒB 11000100 01000010 GB18030 腂 characters encoding bits Føö Windows Latin 1 01000110 11111000 11110110 Føö Mac Roman 01000110 10111111 10011010 Føö UTF-8 01000110 11000011 10111000 11000011 10110110

Заблуждения, смущения и проблемы

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

Какого черта мой текст нечитаем?

ÉGÉìÉRÅ[ÉfÉBÉìÉOÇÕìÔǵÇ≠ǻǢ Если вы откроете документ, и он выглядит так, как текст выше, то причина у этого одна: ваша программа ошиблась с кодировкой. И все. Документ не испорчен(по крайней мере, пока), и не нужно никакое волшебство. Вместо него надо просто выбрать правильную кодировку для отображения текста.

Предполагаемый документ выше содержит биты: 10000011 01000111 10000011 10010011 10000011 01010010 10000001 01011011 10000011 01100110 10000011 01000010 10000011 10010011 10000011 01001111 10000010 11001101 10010011 11101111 10000010 10110101 10000010 10101101 10000010 11001000 10000010 10100010 Так, быстренько угадали кодировку? Если вы пожали плечами, то вы правы. Да кто знает? Попробуем с ASCII. Большая часть этих байтов начинается с 1. Если вы правильно помните, ASCII вообще-то не использует этот бит. Так что ASCII не вариант. Как насчет UTF-8? Большая часть байт не является валидными значениями в этой кодировке. Как насчет Mac Roman(еще одна европейская кодировка)? Хм, для нее эти байты являются правильными значениями. 10000011 декодируетися в ”É”, в “G” и так далее. Так что в Mac Roman текст будет выглядеть так: ÉGÉìÉRÅ[ÉfÉBÉìÉOÇÕìÔǵÇ≠ǻǢ. Правильно? Нет? Может быть? А компьютер-то откуда знает? Может кто-то хотел написать именно это. Насколько я знаю, это может быть последовательностью ДНК! Так и порешим: это Mac Roman, и это ДНК. Конечно, это полный бред. Правильный ответ таков: текст закодирован в Japanes Shift-JIS и должен выглядеть как エンコーディングは難しくない. Кто бы мог подумать? Первая причина нечитаемости текста в том, что кто-то пытается прочитать последовательность байт в неверной кодировке. Компьютеру всегда нужно подсказывать. Сам он не догадается. Некоторые типы документов определяют кодировку своего содержимого, но последовательность байт всегда остается черным ящиком. Большинство браузеров предоставляют возможность указать кодировку страницы с помощью специального пункта меню. Иные программы тоже имеют аналогичные пункты.

У автора нет разбиения на части, но статья и так длинна. Продолжение будет через пару дней.

  • unicode
  • utf-8
  • utf-16
  • огромные таблицы
  • каждый программер желает знать

Источник: https://habr.com/post/158639/

Чтобы правильно отобразить html-документ, браузер должен знать какая кодировка символов использовалась при создании документа

Что значит кодировка

Чтобы правильно отобразить html-документ, браузер должен знать какая кодировка символов использовалась при создании документа.
ASCII — одна из самых старых компьютерных кодировок, в которой каждому символу соответствует строго определенное число. Например, символу “a” соответствует число 97, а символу “A” — число 65.

Эта аббревиатура расшифровывается как American Standard Code for Information Interchange (американская стандартная кодировочная таблица для печатных символов и некоторых специальных кодов).

ASCII — это однобайтовая кодировка, в которую изначально заложено всего 128 символов: буквы латинского алфавита, арабские цифры и т.д.

Вы можете посмотреть на полный комплект Печатаемых символов ASCII.

Позже ASCII была расширена (изначально она не использовала все 8 бит), поэтому появилась возможность использовать уже не 128, а 256 (2 в 8 степени) различных символов, которые можно закодировать в одном байте информации.

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

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

Думаю, что многие из вас слышали о такой кодировке, как KOI8 (Код Обмена Информацией, 8 бит) — это тоже расширенная кодировка ASCII. KOI8 включала в себя цифры, буквы латинского и русского алфавита, а также знаки пунктуации, спецсимволы и псевдографику.

Кодировка ISO

Организация Международных стандартов (International Standards Organization) создала диапазон кодировок для различных алфавитов/языков.

КодировкаОписание
ISO 8859-1 (Latin-1)Расширенная латиница, включающая символы большинства западноевропейских языков (английский, датский, ирландский, исландский, испанский, итальянский, немецкий, норвежский, португальский, ретороманский, фарерский, шведский, шотландский (гэльский) и частично голландский, финский, французский), а также некоторых восточноевропейских (албанский) и африканских языков (африкаанс, суахили). В Latin-1 отсутствуют знак евро и заглавная буква Ÿ. Эта кодовая страница считается кодировкой по умолчанию для HTML-документов и сообщений электронной почты. Также этой кодовой странице соответствуют первые 256 символов Юникода.
ISO 8859-2 (Latin-2)Расширенная латиница, включающая символы центральноевропейских и восточноевропейских языков (боснийский, венгерский, польский, словацкий, словенский, хорватский, чешский). В Latin-2, как и в Latin-1, отсутствуют знак евро.
ISO 8859-3 (Latin-3)Расширенная латиница, включающая символы южноевропейских языков (мальтийский, турецкий и эсперанто).
ISO 8859-4 (Latin-4)Расширенная латиница, включающая символы североевропейских языков (гренландский, эстонский, латышский, литовский и саамские языки).
ISO 8859-5 (Latin/Cyrillic)Кириллица, включающая символы славянских языков (белорусский, болгарский, македонский, русский, сербский и частично украинский).
ISO 8859-6 (Latin/Arabic)Символы, используемые в арабском языке. Символы других языков с письмом на основе арабского не поддерживаются. Для корректного отображения текста в кодировке ISO 8859-6 требуется поддержка двунаправленного письма и контекстно-зависимых форм символов.
ISO 8859-7 (Latin/Greek)Символы современного греческого языка. Может использоваться также для записи древнегреческих текстов в монотонической орфографии.
ISO 8859-8 (Latin/Hebrew)Символы современного иврита. Используется в двух вариантах: с логическим порядком следования символов (требует поддержки двунаправленного письма) и с визуальным порядком следования символов.
ISO 8859-9 (Latin-5)Вариант Latin-1, в котором редко используемые символы исландского языка заменены на турецкие. Используется для турецкого и курдского языков.
ISO 8859-10 (Latin-6)Вариант Latin-4, более удобный для скандинавских языков.
ISO 8859-11 (Latin/Thai)Символы тайского языка.
ISO 8859-13 (Latin-7)Вариант Latin-4, более удобный для балтийских языков.
ISO 8859-14 (Latin-8)Расширенная латиница, включающая символы кельтских языков, таких как шотландский (гэльский) и бретонский.
ISO 8859-15 (Latin-9)Вариант Latin-1, в котором редко используемые символы заменены на необходимые для полной поддержки финского, французского и эстонского языков. Кроме того, в Latin-9 был добавлен знак евро.
ISO 8859-16 (Latin-10)Расширенная латиница, включающая символы южноевропейских и восточноевропейских (албанский, венгерский, итальянский, польский, румынский, словенский, хорватский), а также некоторых западноевропейских языков (ирландский в новой орфографии, немецкий, финский, французский). Как и в Latin-9, в Latin-10 был добавлен знак евро.

Для документов на английском и большинстве других западноевропейских языков, широко поддерживается кодирование ISO-8859-1.

Таблица кодов символов ISO-8859-1

В HTML ISO-8859-1 является кодировкой по умолчанию (в XHTML и в HTML5 кодировкой по умолчанию является UTF-8).
При использовании кодировки страницы, отличной от ISO-8859-1, вам необходимо указать это в теге .

Для HTML5:

Примером ANSI-кодировки является всем известная Windows-1251.

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

Для отображения символов таблицы в HTML-документе воспользуйтесь следующим синтаксисом:

&# + код + ;

 .0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F 8.

 9.

 A.

 B.

 C.

 D.

 E.

 F.

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

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

Кодировки стандарта UNICODE

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

Юникод имеет несколько форм представления символов в компьютере: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE). (Англ. Unicode transformation format – UTF).

UTF-8 — это в настоящее время распространённая кодировка, которая нашла широкое применение в операционных системах и веб-пространстве.

Текст, состоящий из символов Unicode с номерами меньше 128 (область с кодами от U+0000 до U+007F), содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F.

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

Таблица кодов символов UTF-8 кирилица

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

Кодирование символов

Что значит кодировка
 

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

Для кодировки символов в Windows используется таблица ASCII (American Standard Code for Interchange of Information). В ASCII первые 128 символов всех кодовых страниц состоят из базовой таблицы символов.

Первые 32 кода базовой таблицы, начиная с нулевого, размещают управляющие коды.

СимволКодКлавишиЗначение
nul0Ctrl + @Нуль
soh1Ctrl + AНачало заголовка
stx2Ctrl + BНачало текста
etx3Ctrl + CКонец текста
eot4Ctrl + DКонец передачи
enq5Ctrl + EЗапрос
ack6Ctrl + FПодтверждение
bel7Ctrl + GСигнал (звонок)
bs8Ctrl + HЗабой (шаг назад)
ht9Ctrl + IГоризонтальная табуляция
lf10Ctrl + JПеревод строки
vt11Ctrl + KВертикальная табуляция
ff12Ctrl + LНовая страница
cr13Ctrl + MВозврат каретки
so14Ctrl + NВыключить сдвиг
si15Ctrl + OВключить сдвиг
dle16Ctrl + PКлюч связи данных
dc117Ctrl + QУправление устройством 1
dc218Ctrl + RУправление устройством 2
dc319Ctrl + SУправление устройством 3
dc420Ctrl + TУправление устройством 4
nak21Ctrl + UОтрицательное подтверждение
syn22Ctrl + VСинхронизация
etb23Ctrl + WКонец передаваемого блока
can24Ctrl + XОтказ
em25Ctrl + YКонец среды
sub26Ctrl + ZЗамена
esc27Ctrl + [Ключ
fs28Ctrl + \Разделитель файлов
gs29Ctrl + ]Разделитель группы
rs30Ctrl +Разделитель записей
us31Ctrl + _Разделитель модулей

Базовая таблица кодировки ASCII

32 пробел48 064 @80 P96 `112 p
33 !49 165 A81 Q97 a113 q
34 50 266 B82 R98 b114 r
35 #51 367 C83 S99 c115 s
36 $52 468 D84 T100 d116 t
37 %53 569 E85 U101 e117 u
38 &54 670 F86 V102 f118 v
39 ‘55 771 G87 W103 g119 w
40 (56 872 H88 X104 h120 x
41 )57 973 I89 Y105 i121 y
42 *58 :74 J90 Z106 j122 z
43 +59 ;75 K91 [107 k123 {
44 ,6078 N94110 n126 ~
47 /63 ?79 O95 _111 o127

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

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

128 Ђ144 Ђ160176 °192 А208 Р224 а240 р
129 Ѓ145 ‘161 Ў177 ±193 Б209 С225 б241 с
130 ‚146 ’162 ў178 I194 В210 Т226 в242 т
131 ѓ147 “163 J179 i195 Г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 ъ
139171 «187 »203 Л219 Ы235 л251 ы
140 Њ156 њ172 ¬188 j204 М220 Ь236 м252 ь
141 Ќ157 ќ173189 S205 Н221 Э237 н253 э
142 Ћ158 ћ174 ®190 s206 О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.

ASCIIUNICODE
charwchar_t
1 байт2 байта

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

Многобайтовая кодировка предполагает использование кодировки ASCII.

При этом при построении проекта используется директива условной компиляции, переопределяющая тип TCHAR:

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

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

_T(“строка”)

Прототип макроса содержится в файле tchar.h.

Назад: Представление данных и архитектура ЭВМ

Источник: https://prog-cpp.ru/number-coding/

Кодировка сайта

Что значит кодировка

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

на рассылку и получи книгу в подарок!

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

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

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

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

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

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

Если они встретятся друг с другом, никто ничего не поймёт, все они используют разные табличные языки общения. У одного буква «А» значит – 000101, а у другого этому коду соответствует вопросительный знак.

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

Вернёмся в реальность. Наши необычные друзья – это компьютеры. А их выдуманные языки с таблицами – те самые кодировки.

Какие существуют кодировки

Перечислим несколько наиболее удобных и популярных способов кодирования:

UTF-8

Unicode Transformation Format. Восьмибитное представление Юникода. Был изобретён в 1992 году и до сих пор является золотым стандартом всего программного обеспечения в мире. Для кириллицы в Юникоде выделено два раздела: Cyrillic и Cyrillic Supplement.

Windows-1251

Создана в 1990 году специально для русификаторов операционной системы Microsoft Windows. Кириллическая восьмибитная кодировка, занимает второе место по популярности.

KOI8-R

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

Как узнать кодировку сайта

Иногда для устранения проблемы на сайте возникает необходимость определить кодировку открытой страницы. Сделать это можно несколькими способами:

По метатегу

  • Откройте исходный код страницы. Обычно это реализуется нажатием правой кнопки мыши по пустому месту открытого окна и выбором пункта меню «Исходный код страницы».
  • В области найдите тег.
  • В нем должна быть строка с параметром charset.
  • Значение этого параметра обозначает кодировку открытого сайта.

Через инструментарий браузера

  • Найдите в вашем обозревателе меню с выбором «Информация о странице» или «Подробнее», пункт зависит от используемой программы.
  • Выберите вкладку с основной информацией в открывшемся окне.
  • Одним из свойств страницы будет «Кодировка текста».

Как установить кодировку сайта

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

  • Mozilla Firefox
  • Заходим в меню – три горизонтальные полосы справа.
  • Выбираем категорию «Еще».
  • Далее раздел «Кодировка текста».
  • Выбираем необходимую опцию.

Opera

  • Заходим настройки.
  • Выбираем «Веб-сайты».
  • Переходим в блок «Отображение».
  • Далее – «Настроить шрифты».
  • В конце выбираете кодировку.

Google Chrome

  • Перейдите в меню – три точки справа вверху.
  • Выберите пункт «Дополнительные инструменты».
  • Откройте раздел «Кодировка».
  • Откроется окно с выбором различных кодировок.

Настройка кодировки сайта

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

  • Сохраните все файлы сайта в единой кодировке. При необходимости измените её с помощью специальных программ, например Notepad++.
  • Установите в html кодетеги кодировок. Для UTF8 кодировки это будет.
  • Задайте кодировку серверных заголовков по умолчанию. Без этого браузер будет игнорировать даже метатеги.
  • Отредактируйте файл httpd.conf. Найдите параметр AddDefaultCharset и установите необходимое значение.
  • Если у вас нет доступа к корневым настройкам веб-сервера, отредактируйте файл .htaccess в папке ресурса. Укажите вручную параметр AddDefaultCharset с вашей кодировкой сайта.
  • Существует возможность отправки заголовков средствами скриптов. Например, в PHP-скриптах достаточно добавить header(“Content-type: text/html; Charset=utf-8”). Отправка заголовков – приоритетная задача, и она должна выполняться в первую очередь перед выводом контента.

Придется вручную установить верную кодировку соединения для подключаемых модулей. Приведем пример конфигурации для популярной БД MySQL:

  • Откройте на сервере конфиг my.cnf.
  • В области [client] добавьте блок default-character-set=utf8.
  • В области [mysqld] добавьте блок character_set_server=utf8 иcollation_server=utf8_unicode_ci.
  • Задайте принудительную кодировку при каждом обращении в PHP.
  • mysqli_query('SET NAMES utf8 COLLATE utf8_general_ci').

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

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

От правильного выбора кодировки зависит дальнейшая работа всего проекта.

Источник: https://semantica.in/blog/kodirovka-sajta.html

Что значит кодировка – От алкоголизма

Что значит кодировка

НАШИ ЧИТАТЕЛИ РЕКОМЕНДУЮТ!

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

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

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

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

Вредно ли кодирование для здоровья

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

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

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

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

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

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

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

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

Побочные эффекты при кодировании

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

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

Поэтому, перед тем как приступать к лечению, человека нужно тщательно обследовать.

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

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

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

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

Психологические побочные эффекты

При кодировании возможны следующие временные психологические побочные эффекты:

  • Агрессивность и повышенная раздражительность. У мужчин и женщин появляется мелочность, придирчивость, конфликтность и другие расстройства поведения. Это состояние опасно регулярными ссорами с близкими и друзьями, однако оно не вредно для здоровья и не влияет на психику. Как правило, поведенческие нарушения вызваны сменой обстановки и сложностями с адаптацией к непривычно трезвому образу жизни. Для борьбы с этими симптомами можно применить Тиаприд. Его принимают в виде таблеток или вводят в организм уколом;
  • Депрессия. Возникает после кодировки психотерапевтическими методами, уколом в вену или под лопатку. Депрессия является следствием резкого изменения образа жизни. Организм не может привыкнуть к трезвости и новому образу жизни, из-за чего человек и страдает. Депрессия не может нанести серьезный вред здоровью, однако вызывает немало дискомфорта. Побороть ее можно с помощью специальных препаратов. За счет их действия можно нивелировать весь вред кодировки и вернуть человеку хорошее расположение духа;
  • Тревожность. Как правило, у человека появляется необоснованный психологический дискомфорт и ощущение, что с его жизнью происходит что-то странное. Сильная тревога не менее неприятна, чем депрессия или агрессия. Облегчить состояние человека можно с помощью препаратов из группы транквилизаторов или нейролептиков. Неплохо подойдут Феназепам, Элениум или Седуксен. Их можно принимать внутрь или сделать укол.

Физиологические побочные эффекты

H3_2

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

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

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

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

Физиологические побочные эффекты и их вред для организма:

  • Проблемы с потенцией. Их появление вызывает психотерапевтическое кодирование, а именно – эмоционально-стрессовая терапия. Укол или подшивка дисульфирама в этом случае менее опасны. Как правило, мужчина перестает чувствовать сексуальное влечение, у него снижается либидо и пропадает желание заниматься сексом. Устранить эту проблему поможет психотерапия. К сожалению, никакой чудодейственный укол не в состоянии вернуть мужчине былую силу.
  • Сильная жажда, потеря аппетита или обжорство. Люди могут есть очень много или полностью отказываться от пищи. Известны случаи, когда человек набирал много лишнего веса в краткие сроки после кодировки. Укол или таблетки не помогут притупить или вернуть потерянный аппетит. Чтобы избавиться от этого состояния, человек должен взять себя в руки и контролировать собственные действия. Помочь ему в этом может психотерапия.
  • Резкое изменение массы тела. Люди могут совершенно не менять свой рацион, но при этом резко худеть или набирать вес. Такая проблема может быть вызвана нарушением обмена веществ внутри организма. К сожалению, с этим нельзя ничего поделать. При необходимости можно отрегулировать количество употребляемой пищи – это поможет поддерживать вес в пределах нормы. С течением времени обмен веществ нормализируется.
  • Слабость и апатия. Укол или таблетки также не смогут вернуть человеку бодрость и жизнерадостность. Чтобы хоть как-то ускорить восстановление организма, следует правильно питаться и принимать витамины.
  • Мигрирующие боли. У людей может болеть голова, мышцы, суставы или внутренние органы. Чтобы облегчить состояние человека, можно сделать обезболивающий укол или принять таблетку. В этом случае применяются препараты из группы НПВС (Анальгин, Парацетамол и т.д.). К сожалению, лекарства в данной ситуации не оказывают выраженного эффекта.
  • Аллергия на введенный лекарственный препарат. Она возможна лишь в том случае, если кодировка выполнялась уколом или с помощью подшивки. Аллергия может иметь различные проявления – от легкого дерматита до анафилактического шока. Несомненно, организм страдает от последнего очень сильно, а вред этого осложнения более чем очевиден. К счастью, аллергические реакции возникают крайне редко и только в том случае, если кодировка выполнялась уколом в вену или подшивкой под лопатку. Лечение алкогольной зависимости психотерапевтическими методами никогда не вызывает аллергию, поскольку внушение имеет совсем иной механизм действия, чем лекарственные препараты. При гипнозе в организм человека никогда не вводят препараты, способные вызвать развитие аллергии.

Источник: http://ot-alkogolizma.ru/kodirovanie/chto-znachit-kodirovka/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.