Однобайтная кодировка что это

Урок 18
§11. Кодирование текстов

Содержание урока

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

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

В современных компьютерах память состоит из 8-битных ячеек — байтов. Поэтому к кодам ASCII можно добавить ещё один (старший) бит, таким образом, получается 8-битная кодировка. Этот дополнительный бит позволяет добавить в таблицу ещё 128 символов с кодами от 128 до 255. Такое расширение ASCII часто называют кодовой страницей. Первую половину кодовой страницы (коды от О до 127) занимает стандартная таблица ASCII, а вторую — символы национальных алфавитов (например, русские буквы):

Однобайтная кодировка что это. Смотреть фото Однобайтная кодировка что это. Смотреть картинку Однобайтная кодировка что это. Картинка про Однобайтная кодировка что это. Фото Однобайтная кодировка что это

Для русского языка существуют несколько кодовых страниц, которые были разработаны для разных операционных систем. Наиболее известны:

Windows-1251 (СР-1251) — в системе Windows;
KOI8-R — в Uniх-совместимых операционных системах и электронной почте;
• альтернативная кодировка СР-866;
MacCyrillic — на компьютерах компании Apple.

Проблема состоит в том, что, если набрать русский текст в одной кодировке (например, в Windows-1251), а просматривать в другой (например, в KOI8-R), текст будет очень сложно прочитать:

Однобайтная кодировка что это. Смотреть фото Однобайтная кодировка что это. Смотреть картинку Однобайтная кодировка что это. Картинка про Однобайтная кодировка что это. Фото Однобайтная кодировка что это

Для веб-страниц в Интернете часто используют кодировки Windows-1251 и KOI8-R. Браузер после загрузки страницы пытается автоматически определить её кодировку. Если ему это не удаётся, вы увидите странный набор букв вместо понятного русского текста. В этом случае нужно сменить кодировку вручную с помощью меню Вид.

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

— Что такое псевдографика и зачем она использовалась?
— В каких операционных системах для русских текстов используется кодировка СР-866?
— Найдите коды русских букв «А», «В», «П», «Р», «Я» в кодировках СР-866, CP-1251, KOI-8R, MacCyrillic;
— В каких кодировках русские буквы расположены по алфавиту, а в каких — нет?

Следующая страница Однобайтная кодировка что это. Смотреть фото Однобайтная кодировка что это. Смотреть картинку Однобайтная кодировка что это. Картинка про Однобайтная кодировка что это. Фото Однобайтная кодировка что этоКодировки UNICODE

Cкачать материалы урока
Однобайтная кодировка что это. Смотреть фото Однобайтная кодировка что это. Смотреть картинку Однобайтная кодировка что это. Картинка про Однобайтная кодировка что это. Фото Однобайтная кодировка что это

Источник

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

Кодировка ASCII определяет символы в диапазоне от 0x00 до 0x7F. Существует ряд других кодировок, в основном европейских, которые определяют символы в диапазоне от 0x00 до 0x7F, идентичные кодировке ASCII, а также символы национальных алфавитов в диапазоне от 0x80 до 0xFF. 8-разрядная однобайтовая кодировка (SBCS) достаточно для представления набора символов ASCII, а также наборов символов для многих европейских языков. Однако некоторые неевропейские кодировки, например японские иероглифы, содержат гораздо больше символов, чем могут быть представлены в однобайтовой схеме кодирования, поэтому требуется кодирование многобайтовой кодировки (MBCS).

Многие подпрограммы с многобайтовой кодировкой в библиотеке времени выполнения (Майкрософт) требуемым образом обрабатывают многобайтовые символы и строки. Многие многобайтовые кодировки определяют кодировку ASCII как свое подмножество. Во многих многобайтовых кодировках каждый символ в диапазоне от 0x00 до 0x7F совпадает с символом в кодировке ASCII, который имеет то же значение. Например, и в строках ASCII, и в строках многобайтовой кодировки однобайтовый нуль-символ (‘\0’) имеет значение 0x00 и означает завершающий нуль-символ.

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

Источник

Что такое Юникод?

Юникод (Unicode), это многоязычный, основанный на ASCII стандарт кодирования символов, а также, связанное с ним, семейство многобайтных кодировок. Если некоторые слова из предыдущего предложения вам не понятны, давайте рассмотрим их подробнее.

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

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

Поэтому программистам при работе с текстом приходится делать подобные соглашения: «А давайте каждому символу будет соответствовать один байт. Причём, если в байте будет число 43, то будем считать, что это цифра ноль. А если число 66, то пусть это будет заглавная латинская буква B».

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

Крякозябры

Наверное, часто бывала ситуация, когда вы открываете страницу в браузере, а там вместо текста какая-то мешанина из чудных символов. Или просто сплошные вопросительные знаки. Или вы пишете любовное письмо своей девушке, а она звонит вам и говорит «что за нечитаемый бред ты мне прислал? Я обиделась».

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

Например, ваш текстовый редактор настроен на кодировку Windows-1251. И вы пишете «Здравствуйте, дорогая Маша!». Вы нажимаете первую букву и программа думает: «ага, русская заглавная буква Зэ — код 199». И записывает число 199 в файл. Маша получает ваше письмо, но в её почтовом клиенте стоит кодировка KOI8-R (потому что Маша любит старый Unix). А в этой кодировке числу 199 соответствует строчная буква «г». И Маша читает: «гДПЮБЯРБСИРЕ, ДНПНЦЮЪ лЮЬЮ!». Маша обиделась!

Чтобы подобного не происходило, нужно каким-то образом указывать кодировку в которой набран текст. Например, в HTML это делается с помощью тега:

ASCII

В определённый момент времени распространение получила кодировка ASCII (American Standard Code for Information Interchange). В ней определены 128 символов с кодами от 0 до 127. Сюда включён латинский алфавит, цифры и основные знаки препинания (

Практически все современные кодировки, использующиеся на персональных компьютерах являются ASCII-совместимыми. То есть первые 128 символов у них кодируются одинаково, а различия начинаются с кода 128 и выше. Вышеупомянутые Windows-1251 и KOI8-r также основаны на ASCII и если бы письмо начиналось бы с «Hello, my dear Maria!», то недопонимания не возникло бы.

Основан на ASCII и Юникод.

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

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

Однобайтные кодировки всем хороши: они компактны, с ними легко работать (нужно достать пятый символ — просто берём пятый байт от начала). Единственная проблема: в них помещается мало символов. Ровно столько, сколько значений может принимать один байт, то есть обычно, это 256. Например, в Windows-1251 мы отдали 128 символов под ASCII, добавили 66 букв русского алфавита (строчные и заглавные), несколько знаков препинания и вот у нас уже остаётся не так много свободных позиций. Даже на псевдографику не хватает.

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

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

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

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

Стандарт Unicode

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

С одной стороны, Юникод позволяет кодировать практически неограниченное количество символов. В последнем стандарте определено более 100 000 различных символов всех современных и многих уже мёртвых языков, а также различные иконки и пиктограммы. С другой стороны, некоторые способы кодирования позволяют Юникоду оставаться ASCII-совместимыми. Что позволяет работать, как и раньше многим программам, а также американским и другим англоязычным пользователям, многие из которых появления Юникода даже не заметили. В Юникоде также собраны все символы из всех популярных стандартов кодирования, что позволяет преобразовать в него любой текст из старой кодировки.

Практически все современные программы, работающие с текстом, понимают Юникод. Более того, обычно они в нём и работают. Например, даже когда вы открываете сайт в старой доброй Windows-1251, браузер сначала внутри у себя перекодирует все тексты в Юникод, а потом отображает их. В общем, Юникод, это светлое будущее интернета и всей компьютерной индустрии.

Отличие набора символов от кодировки

Термины «кодировка», «стандарт кодирования», «набор символов» обычно используются, как синонимы, но между ними есть и тонкие различия. Важно понимать разницу между «стандартом» и, собственно, «кодировкой». Некий стандарт просто говорит, что буква «A», это число 65, а буква «B» — 66. Кодировка же отвечает за то, как эти числа представить в памяти компьютера.

То есть в стандарте Юникода определено, что кириллической букве «А» соответствует абстрактное число 1040. Как представить это число в виде последовательности байтов решает уже конкретная кодировка — UTF-8, UTF-16, UTF-32.

То есть текстовый файл не может быть в кодировке «Юникод», а только в конкретной кодировке «UTF-8» или «UTF-16».

Кодировки и шрифты

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

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

© Таблица символов Юникода, 2012–2021.
Юникод® — это зарегистрированная торговая марка консорциума Юникод в США и других странах. Этот сайт никак не связан с консорциумом Юникод. Официальный сайт Юникода располагается по адресу www.unicode.org.

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

Источник

Виды кодировок символов

Однобайтная кодировка что это. Смотреть фото Однобайтная кодировка что это. Смотреть картинку Однобайтная кодировка что это. Картинка про Однобайтная кодировка что это. Фото Однобайтная кодировка что это

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

Так, латинское «А» и кириллическое «А» — это разные символы, потому что они употребляются в разных контекстах и несут в себе разную информацию.

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

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

Если кодировка ISO 8859-5 для кириллицы так и не прижилась, первая из этой серии — кодировка ISO 8859-1, известная также под именем Latin-1, — сумела стать общепринятым стандартом для кодирования «расширенной» латиницы. В эту кодировку включены почти все символы, употребляющиеся в письменностях западноевропейских языков — французского, немецкого, испанского и т.д.

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

В 1991 году была предпринята попытка создать единую универсальную двухбайтовую кодировку, охватывающую все алфавиты и иероглифические системы мира. Результатом стал стандарт под названием Unicode, покрывающий не только системы письменности всех живых и большинства мертвых языков мира, но и множество музыкальных, математических, химических и прочих символов. Массовое применение Unicode в документах и программах остается делом будущего, для web- дизайнера эта кодировка имеет особое значение, так как именно она объявлена «стандартной кодировкой документа» в HTML начиная с версии 4.

В ближайшее время все более важную роль будет играть особый формат Unicode (и ISO 10646) под названием UTF-8. Эта «производная» кодировка пользуется для записи символов цепочками байтов различной длины (от одного до шести), которые с помощью несложного алгоритма преобразуются в Unicode- коды, причем более употребительным символам соответствуют более короткие цепочки. Главное достоинство этого формата — совместимость с ASCII не только по значениям кодов, но и по количеству бит на символ, так как для кодирования любого из первых 128 символов в UTF-8 достаточно одного байта (хотя, например, для букв кириллицы нужно уже по два байта).

Указание кодировки документа web-страницы

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

Источник

Кодировки и наборы символов

Символы ASCII (в шестнадцатеричном представлении):

Управляющие символы и их шестнадцатеричные коды:

Кодировка Windows-1251 (cp1251) является стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Первая часть таблицы кодировки (латиница) полностью соответствует кодировке ASCII. Вторая часть (под символами указаны шестнадцатеричные коды Unicode):

0123456789ABCDEF
0NULSOHSTXETXEOTENQACKBELBSHTLFVTFFCRSOSI
1DLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS
2SP!«#$%&()*+,./
30123456789:;?
4@ABCDEFGHIJKLMNO
5PQRSTUVWXYZ[\]^_
6`abcdefghijklmno
7pqrstuvwxyz <|>
0123456789ABCDEF
8Ђ
0402
Ѓ
0403

201A
ѓ
0453

201E

2026

2020

2021

20AC

2030
Љ
0409

2039
Њ
040A
Ќ
040C
Ћ
040B
Џ
040F
9ђ
0452

2018

2019

201C

201D

2022

2013

2014

2122
љ
0459

203A
њ
045A
ќ
045C
ћ
045B
џ
045F
A00A0Ў
040E
ў
045E
Ј
0408
¤
00A4
Ґ
0490
¦
00A6
§
00A7
Ё
0401
©
00A9
Є
0404
«
00AB
¬
00AC
­
00AD
®
00AE
Ї
0407
B°
00B0
±
00B1
І
0406
і
0456
ґ
0491
µ
00B5

00B6
·
00B7
ё
0451

2116
є
0454
»
00BB
ј
0458
Ѕ
0405
ѕ
0455
ї
0457
CА
0410
Б
0411
В
0412
Г
0413
Д
0414
Е
0415
Ж
0416
З
0417
И
0418
Й
0419
К
041A
Л
041B
М
041C
Н
041D
О
041E
П
041F
DР
0420
С
0421
Т
0422
У
0423
Ф
0424
Х
0425
Ц
0426
Ч
0427
Ш
0428
Щ
0429
Ъ
042A
Ы
042B
Ь
042C
Э
042D
Ю
042E
Я
042F
Eа
0430
б
0431
в
0432
г
0433
д
0434
е
0435
ж
0436
з
0437
и
0438
й
0439
к
043A
л
043B
м
043C
н
043D
о
043E
п
043F
Fр
0440
с
0441
т
0442
у
0443
ф
0444
х
0445
ц
0446
ч
0447
ш
0448
щ
0449
ъ
044A
ы
044B
ь
044C
э
044D
ю
044E
я
044F

Для кодировки cp1251 существуют разновидности (казахская, чувашская и т.д.).

В консоли русифицированных систем семейства Windows NT используется кодировка cp866. Первая часть таблицы кодировки (латиница) полностью соответствует кодировке ASCII. Вторая часть (под символами указаны шестнадцатеричные коды Unicode):

0123456789ABCDEF
8А
0410
Б
0411
В
0412
Г
0413
Д
0414
Е
0415
Ж
0416
З
0417
И
0418
Й
0419
К
041A
Л
041B
М
041C
Н
041D
О
041E
П
041F
9Р
0420
С
0421
Т
0422
У
0423
Ф
0424
Х
0425
Ц
0426
Ч
0427
Ш
0428
Щ
0429
Ъ
042A
Ы
042B
Ь
042C
Э
042D
Ю
042E
Я
042F
Aа
0430
б
0431
в
0432
г
0433
д
0434
е
0435
ж
0436
з
0437
и
0438
й
0439
к
043A
л
043B
м
043C
н
043D
о
043E
п
043F
B
2591

2592

2593

2502

2524

2561

2562

2556

2555

2563

2551

2557

255D

255C

255B

2510
C
2514

2534

252C

251C

2500

253C

255E

255F

255A

2554

2569

2566

2560

2550

256C

2567
D
2568

2564

2565

2559

2558

2552

2553

256B

256A

2518

250C

2588

2584

258C

2590

2580
Eр
0440
с
0441
т
0442
у
0443
ф
0444
х
0445
ц
0446
ч
0447
ш
0448
щ
0449
ъ
044A
ы
044B
ь
044C
э
044D
ю
044E
я
044F
FЁ
0401
ё
0451
Є
0404
є
0454
Ї
0407
ї
0457
Ў
040E
ў
045E
°
00B0

2219
·
00B7

221A

2116
¤
00A4

25A0
00A0

Для кодировки cp866 существуют разновидности (чувашская, ГОСТ 19768-87 и т.д.).

Стандартом для русской кириллицы в юникс-подобных операционных системах является кодировка КОИ-8 (код обмена информацией, 8 битов), или KOI8. Существует несколько вариантов кодировки КОИ-8 для различных кириллических алфавитов. Русский алфавит описывается в кодировке KOI8-R, украинский — в KOI8-U, существуют также кодировки KOI8-RU (русско-белорусско-украинская), KOI8-T (таджикская) и т.д.

Разработчики КОИ-8 разместили символы русского алфавита таким образом, что если в тексте, написанном в КОИ-8, убирать восьмой бит каждого символа, то получается «читабельный» текст, хотя он и написан латинскими символами.

Вторая часть кодировки KOI8-R (русская), под символами указаны шестнадцатеричные коды Unicode:

0123456789ABCDEF
8
2500

2502

250C

2510

2514

2518

251C

2524

252C

2534

253C

2580

2584

2588

258C

2590
9
2591

2592

2593

2320

25A0

2219

221A

2248

2264

2265
00A0
2321
°
00B0
²
00B2
·
00B7
÷
00F7
A
2550

2551

2552
ё
0451

2553

2554

2555

2556

2557

2558

2559

255A

255B

255C

255D

255E
B
255F

2560

2561
Ё
0401

2562

2563

2564

2565

2566

2567

2568

2569

256A

256B

256C
©
00A9
Cю
044E
а
0430
б
0431
ц
0446
д
0434
е
0435
ф
0444
г
0433
х
0445
и
0438
й
0439
к
043A
л
043B
м
043C
н
043D
о
043E
Dп
043F
я
044F
р
0440
с
0441
т
0442
у
0443
ж
0436
в
0432
ь
044C
ы
044B
з
0437
ш
0448
э
044D
щ
0449
ч
0447
ъ
044A
CЮ
042E
А
0410
Б
0411
Ц
0426
Д
0414
Е
0415
Ф
0424
Г
0413
Х
0425
И
0418
Й
0419
К
041A
Л
041B
М
041C
Н
041D
О
041E
DП
041F
Я
042F
Р
0420
С
0421
Т
0422
У
0423
Ж
0416
В
0412
Ь
042C
Ы
042B
З
0417
Ш
0428
Э
042D
Щ
0429
Ч
0427
Ъ
042A

Коды в стандарте Unicode разделены на несколько областей, например:

В дальнейшем было принято решение расширить кодовую область, и коды символов стали рассматриваться не как 16-битные значения, а как абстрактные числа, которые в компьютере могут представляться множеством разных способов. Однако, поскольку в ряде компьютерных систем (например, Windows NT) до изобретения Юникода уже были реализованы 16-битные символы, было решено всё наиболее важное кодировать только в пределах первых 65536 позиций (так наз. Basic Multilingual Plane, BMP). Остальное пространство используется для «дополнительных символов» (Supplementary Characters): систем письма вымерших языков или очень редко используемых китайских иероглифов, математических и музыкальных символов.

Стандарт Юникода содержит семейство кодировок (форм представления или UTF, Unicode Transformation Format): UTF-8, UTF-16, UTF-32 и некоторые другие, которые отличаются между собой способом хранения данных (количество байт на символ, фиксированное или нефиксированное количество байт на символ). Была разработана также форма представления UTF-7 для передачи по семибитным каналам, но из-за несовместимости с ASCII она не получила распространения и не включена в стандарт.

В Microsoft Windows NT/2000/XP в основном используется форма UTF-16. В UNIX-подобных операционных системах GNU/Linux, BSD и Mac OS X принята форма UTF-8 для файлов и UTF-32 или UTF-8 для обработки символов в оперативной памяти.

В Юникоде нет русских букв с ударением, но по стандарту их можно делать составными, добавляя символ U+0301 («combining acute accent») после ударной гласной. Вообще, в Юникоде символы, имеющие дополнительные над- или подстрочные элементы, могут быть представлены в виде построенной по определённым правилам последовательности кодов (составной вариант, composite character) или в виде единого символа (монолитный вариант, precomposed character). Cимволы в Юникоде подразделяются на протяжённые и непротяжённые (бесширинные). Непротяжённые символы при отображении не занимают места в строке. К ним относятся, в частности, знаки ударения и прочие диакритические знаки. Как протяжённые, так и непротяжённые символы имеют собственные коды. Протяжённые символы иначе называются базовыми (base characters), а непротяжённые — модифицирующими (combining characters); причём последние не могут встречаться самостоятельно. Например, символ «a» с ударением может быть представлен как последовательность базового символа «a» (U+0061) и модифицирующего символа U+0301, или как монолитный символ «a» с ударением (U+00C1). Примечание: множество символов из языков с алфавитами на основе кириллицы не имеют монолитных форм.

В Windows служебная программа «Таблица символов» (для вызова наберите «charmap» в командной строке) позволяет вывести на экран таблицу всех символов от U+0000 до U+FFFF, поддерживаемых конкретным шрифтом. Также эта программа позволяет выделять отдельные символы и копировать их в буфер обмена.

В некоторых приложениях, например WordPad и MS Word, работает способ ввода символов по шестнадцатеричному коду: нужно набрать этот код, и нажать Alt+X. Код будет заменён на соответствующий символ. Работает и обратное преобразование: если выделить символ и нажать Alt+X, то этот символ будет заменён на его шестнадцатеричный код.

Кроме того, во многих Windows-приложениях будет работать следующее: если нажать клавишу Alt, и не отпуская её, ввести код на блоке дополнительной цифровой клавиатуры, будет введён соответствующий символ. Таким способом могут вводиться символы различных кодировок по достаточно сложным правилам, которые могут срабатывать по-разному в разных программах, и описаны, например, в статье «Вводим отсутствующие на клавиатуре символы» журнала «Компьютерра» (эту статью можно найти в Интернете).

В HTML все символы могут быть закодированы в числовом обозначении с использованием десятичного (&#DD;) или шестнадцатеричного (&#xHHHH;) кода Unicode. Hапример, буква «Ё»: Ё или Ё.

В HTML можно использовать также модифицирующие непротяжённые символы, например, для расстановки ударений. Код:

Будет отображён так:

Разрешение проблем

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

Например, текст в кодировке КОИ-8, сохранённый в кодировке cp1251, выглядит примерно следующим образом:

Чтобы прочитать такой текст, можно проделать следующее:

Это может происходить из-за того, что приложение, из которого производится копирование, помещает текст в буфер обмена в 8-битной кодировке, а то, в которое происходит вставка, запрашивает его в Юникоде (так делает, например, Блокнот). Windows «идёт навстречу» и перекодирует текст. При копировании в буфер помещается также информация о языке. Это может делать само приложение, а если не делает, то Windows просто смотрит, на какой язык ввода было переключено приложение в момент копирования. Если на русский, то используется страница 1251 и при вставке всё нормально. Но если текст русский, а окно приложения было переключено в английский, кодирование пойдёт через 1252 страницу и вместо русских букв пойдут «кракозябры». В таких случаях может помочь предварительное переключение приложения, из которого производится копирование, на русский.

Чтобы перенести подобный текст, можно проделать следующее:

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *