Кодировка виндовс: Кодировки UTF-8, Windows-1251, CP-866…. или русский язык в Arduino IDE

Содержание

за что отвечает и как работает – WindowsTips.Ru. Новости и советы

В начале 90-х, когда произошел развал СССР и границы России были открыты, к нам стали поступать программные продукты западного производства. Естественно, все они были англоязычными. В это же время начинает развиваться Интернет. Остро встала проблема русификации ресурсов и программ. Тогда и была придумана русская кодировка Windows 1251. Она позволяет корректно отображать буквы славянских алфавитов:

  • русского;
  • украинского;
  • белорусского;
  • сербского;
  • болгарского;
  • македонского.

Разработка велась русским представительством Microsoft совместно с компаниями «Диалог» и «Параграф». За основу были взяты самописные разработки, которые в 1990-91гг имели хождение среди немногочисленных идеологов ИТ в России.

На сегодняшний день разработан более универсальный способ кодировать символы — UTF-8 (Юникод). В нем представлено почти 90% всех программных и веб-ресурсов. Windows 1251 применяется в 1,6% случаев. (Информация по исследованиям Web Technology Surveys)

Кодировка сайта utf 8 или Windows 1251?

Чтобы ответить на этот вопрос, необходимо немного понять, что такое кодировка и чем они отличаются. Текстовая информация, как впрочем, и любая другая, в компьютере хранится в закодированном виде. Нам легче представить ее как числа. Каждый символ может занимать один или более байт. Windows 1251 является однобайтной кодировкой, а UTF-8 восьмибайтной. Это значит, что в Windows 1251 можно закодировать всего 256 символов.
Так как все сводится к двоичной системе исчисления, а байт – это 8 бит (0 и 1), то и максимальное число сочетаний составляет 28 = 256. Юникод позволяет представлять куда большее число символов, да и на каждый может быть выделен больший размер.

Отсюда и следуют преимущества Юникода:

  1. В шапке сайта следует указать кодировку, которая используется. Иначе вместо символов отобразятся «кракозяблы». А Юникод является стандартным для всех браузеров – они ловят его «на лету» как установленный по умолчанию.
  2. Символы сайта останутся одними и теми же, независимо от того, в какой стране загружается ресурс. Это зависит не от географического расположения серверов, а от языка программного обеспечения рабочих станций клиента. Житель Португалии, очевидно, использует клавиатуру и все ПО, включая операционную систему, на родном языке. В его компьютере, скорее всего вообще отсутствует Windows 1251. А если это так, то и сайты на русском языке корректно открываться не будут. Юникод, в свою очередь, «зашит» в любую ОС на любом языке.
  3. UTF-8 позволяет закодировать большее количество символов. На данный момент используется 6 байт из 8-ми, а русские символы кодируются двумя байтами.
    Именно поэтому предпочтительней использовать универсальную кодировку, а не узкоспециализированную, которая применяется только в славянских странах.

Таблица кодировки Windows 1251

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

Что делать, если слетела кодировка командной строки?

Иногда Вы можете столкнуться с ситуацией, когда в командной строке вместо русских отображаются непонятные символы. Это означает, что возникла проблема кодировки командной строки Windows 7. Почему 7-ка? Потому что, начиная с 8-й версии, используется UTF-8, а в семерке еще Windows 1251.
Единовременно помочь решить проблему может команда chcp 866. Текущий сеанс будет работать корректно. А вот чтобы исправить ошибку кардинально, понадобится реестр.

  1. Нажмите Win+R и наберите команду regedit. Это позволит попасть в редактор реестра.
  2. Перейдите по ветке HKEY_CURRENT_USER\Console и посмотрите, чему равно значение для CodePage. Скорее всего, вы увидите что-то, отличное от 866 (правильный вариант).
  3. Исправьте на 866 в положении «Десятичная».
  4. Закройте и откройте вновь командную строку. Ситуация должна исправиться.

Решаем проблему с кодировкой приложений Windows

Октябрь6

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

Особенно сильно проблема с кодировкой стала актуальна после выхода новой Windows 10. Микрософты опять что-то перемудрили и в итоге, в некоторых приложениях вместо языка одни кракозябры. Но все решаемо

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

— обновление системы

— установка какого-то системного патча

— действие вируса

— обновление до windows 10

— кривые шаловливые руки и непомерная любознательность ( самая распространенная причина всех бед в windows )

Восстановление кодировки

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

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

заходим в Панель управления->Язык и региональные стандарты->Закладка «Дополнительно»->Язык программ не поддерживающих Юникод. Меняем язык с Русского на Английский, перезагружаем компьютер, снова меняем  на русский и опять перезагружаем компьютер. Снова наслаждаемся красивыми родными шрифтами!

В windows 10 кодировка привязывается глобально к общему языку системы. Поэтому если у вас проблемы с отображением шрифтов, то нужно пройти: Пуск -> Параметры -> Время и Язык -> Регион и язык -> Дополнительные настройки даты и времени, региональные параметры -> и посмотреть настройки в пунктах: Язык и Региональные стандарты.

Другие статьи


Copyright © 2013-2017. All rights reserved.

Выбор кодировки текста при открытии и сохранении файлов

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

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

В этой статье


Общие сведения о кодировке текста


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

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



Различные кодировки для разных алфавитов


Сведения о кодировке, сохраняемые с текстовым файлом, используются компьютером для вывода текста на экран. Например, в кодировке «Кириллица (Windows)» знаку «Й» соответствует числовое значение 201. Когда вы открываете файл, содержащий этот знак, на компьютере, на котором используется кодировка «Кириллица (Windows)», компьютер считывает число 201 и выводит на экран знак «Й».

Однако если тот же файл открыть на компьютере, на котором по умолчанию используется другая кодировка, на экран будет выведен знак, соответствующий числу 201 в этой кодировке. Например, если на компьютере используется кодировка «Западноевропейская (Windows)», знак «Й» из исходного текстового файла на основе кириллицы будет отображен как «É», поскольку именно этому знаку соответствует число 201 в данной кодировке.


Юникод: единая кодировка для разных алфавитов


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

Так как Word работает на базе Юникода, все файлы в нем автоматически сохраняются в этой кодировке. Файлы в Юникоде можно открывать на любом компьютере с операционной системой на английском языке независимо от языка текста. Кроме того, на таком компьютере можно сохранять в Юникоде файлы, содержащие знаки, которых нет в западноевропейских алфавитах (например, греческие, кириллические, арабские или японские).


К началу страницы


Выбор кодировки при открытии файла


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

  1. Откройте вкладку Файл.

  2. Нажмите кнопку Параметры.

  3. Нажмите кнопку Дополнительно.

  4. Перейдите к разделу Общие и установите флажокПодтверждать преобразование формата файла при открытии.

    Примечание: Если установлен этот флажок, Word отображает диалоговое окно Преобразование файла при каждом открытии файла в формате, отличном от формата Word (то есть файла, который не имеет расширения DOC, DOT, DOCX, DOCM, DOTX или DOTM). Если вы часто работаете с такими файлами, но вам обычно не требуется выбирать кодировку, не забудьте отключить этот параметр, чтобы это диалоговое окно не выводилось.

  5. Закройте, а затем снова откройте файл.

  6. В диалоговом окне Преобразование файла выберите пункт Кодированный текст.

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

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

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

Чтобы установить дополнительные шрифты, сделайте следующее:

  1. Нажмите кнопку Пуск и выберите пункт Панель управления.

  2. Выполните одно из указанных ниже действий.


    В Windows 7

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

    2. В списке программ щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.


    В Windows Vista

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

    2. В списке программ щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.


    В Windows XP

    1. На панели управления щелкните элемент Установка и удаление программ.

    2. В списке Установленные программы щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.

  3. В группе Изменение установки Microsoft Office нажмите кнопку Добавить или удалить компоненты и затем нажмите кнопку Продолжить.

  4. В разделе Параметры установки разверните элемент Общие средства Office, а затем — Многоязыковая поддержка.

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

Совет: При открытии текстового файла в той или иной кодировке в Word используются шрифты, определенные в диалоговом окне Параметры веб-документа. (Чтобы вызвать диалоговое окно Параметры веб-документа, нажмите кнопку Microsoft Office, затем щелкните Параметры Word и выберите категорию Дополнительно. В разделе Общие нажмите кнопку Параметры веб-документа.) С помощью параметров на вкладке Шрифты диалогового окна Параметры веб-документа можно настроить шрифт для каждой кодировки.


К началу страницы


Выбор кодировки при сохранении файла


Если не выбрать кодировку при сохранении файла, будет использоваться Юникод. Как правило, рекомендуется применять Юникод, так как он поддерживает большинство символов большинства языков.

Если документ планируется открывать в программе, которая не поддерживает Юникод, вы можете выбрать нужную кодировку. Например, в операционной системе на английском языке можно создать документ на китайском (традиционное письмо) с использованием Юникода. Однако если такой документ будет открываться в программе, которая поддерживает китайский язык, но не поддерживает Юникод, файл можно сохранить в кодировке «Китайская традиционная (Big5)». В результате текст будет отображаться правильно при открытии документа в программе, поддерживающей китайский язык (традиционное письмо).

Примечание: Так как Юникод — это наиболее полный стандарт, при сохранении текста в других кодировках некоторые знаки могут не отображаться. Предположим, например, что документ в Юникоде содержит текст на иврите и языке с кириллицей. Если сохранить файл в кодировке «Кириллица (Windows)», текст на иврите не отобразится, а если сохранить его в кодировке «Иврит (Windows)», то не будет отображаться кириллический текст.

Если выбрать стандарт кодировки, который не поддерживает некоторые символы в файле, Word пометит их красным. Вы можете просмотреть текст в выбранной кодировке перед сохранением файла.

При сохранении файла в виде кодированного текста из него удаляется текст, для которого выбран шрифт Symbol, а также коды полей.



Выбор кодировки


  1. Откройте вкладку Файл.

  2. Выберите пункт Сохранить как.

    Чтобы сохранить файл в другой папке, найдите и откройте ее.

  3. В поле Имя файла введите имя нового файла.

  4. В поле Тип файла выберите Обычный текст.

  5. Нажмите кнопку Сохранить.

  6. Если появится диалоговое окно Microsoft Office Word — проверка совместимости, нажмите кнопку Продолжить.

  7. В диалоговом окне Преобразование файла выберите подходящую кодировку.

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

    • Чтобы использовать кодировку MS-DOS, выберите параметр MS-DOS.

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

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

  8. Если появилось сообщение «Текст, выделенный красным, невозможно правильно сохранить в выбранной кодировке», можно выбрать другую кодировку или установить флажок Разрешить подстановку знаков.

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

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

  9. Если документ будет открываться в программе, в которой текст не переносится с одной строки на другую, вы можете включить в нем жесткие разрывы строк. Для этого установите флажок Вставлять разрывы строк и укажите нужное обозначение разрыва (возврат каретки (CR), перевод строки (LF) или оба значения) в поле Завершать строки.


К началу страницы


Поиск кодировок, доступных в Word


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

Ниже приведен список письменностей и связанных с ними кодировок (кодовых страниц).



















Система письменности


Кодировки


Используемый шрифт

Многоязычная

Юникод (UCS-2 с прямым и обратным порядком байтов, UTF-8, UTF-7)

Стандартный шрифт для стиля «Обычный» локализованной версии Word

Арабская

Windows 1256, ASMO 708

Courier New

Китайская (упрощенное письмо)

GB2312, GBK, EUC-CN, ISO-2022-CN, HZ

SimSun

Китайская (традиционное письмо)

BIG5, EUC-TW, ISO-2022-TW

MingLiU

Кириллица

Windows 1251, KOI8-R, KOI8-RU, ISO8859-5, DOS 866

Courier New

Английская, западноевропейская и другие, основанные на латинице

Windows 1250, 1252-1254, 1257, ISO8859-x

Courier New

Греческая

Windows 1253

Courier New

Иврит

Windows 1255

Courier New

Японская

Shift-JIS, ISO-2022-JP (JIS), EUC-JP

MS Mincho

Корейская

Wansung, Johab, ISO-2022-KR, EUC-KR

Malgun Gothic

Тайская

Windows 874

Tahoma

Вьетнамская

Windows 1258

Courier New

Индийские: тамильская

ISCII 57004

Latha

Индийские: непальская

ISCII 57002 (деванагари)

Mangal

Индийские: конкани

ISCII 57002 (деванагари)

Mangal

Индийские: хинди

ISCII 57002 (деванагари)

Mangal

Индийские: ассамская

ISCII 57006


Индийские: бенгальская

ISCII 57003


Индийские: гуджарати

ISCII 57010


Индийские: каннада

ISCII 57008


Индийские: малаялам

ISCII 57009


Индийские: ория

ISCII 57007


Индийские: маратхи

ISCII 57002 (деванагари)


Индийские: панджаби

ISCII 57011


Индийские: санскрит

ISCII 57002 (деванагари)


Индийские: телугу

ISCII 57005


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

  • Для непальского, ассамского, бенгальского, гуджарати, малаялам и ория доступна только ограниченная поддержка.


К началу страницы


Как работают кодировки текста. Откуда появляются «кракозябры». Принципы кодирования. Обобщение и детальный разбор

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

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

О чем будет под катом: принцип работы одно байтовых кодировок (ASCII, Windows-1251 и т.д.), предпосылки появления Unicode, что такое Unicode, Unicode-кодировки UTF-8, UTF-16, их отличия, принципиальные особенности, совместимость и несовместимость разных кодировок, принципы кодирования символов, практический разбор кодирования и декодирования.

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

Предпосылки Unicode

Начать думаю стоит с того времени когда компьютеризация еще не была так сильно развита и только набирала обороты. Тогда разработчики и стандартизаторы еще не думали, что компьютеры и интернет наберут такую огромную популярность и распространенность. Собственно тогда то и возникла потребность в кодировке текста. В каком то же виде нужно было хранить буквы в компьютере, а он (компьютер) только единицы и нули понимает. Так была разработана одно-байтовая кодировка ASCII (скорее всего она не первая кодировка, но она наиболее распространенная и показательная, по этому ее будем считать за эталонную). Что она из себя представляет? Каждый символ в этой кодировке закодирован 8-ю битами. Несложно посчитать что исходя из этого кодировка может содержать 256 символов (восемь бит, нулей или единиц 2

8

=256).

Первые 7 бит (128 символов 27=128) в этой кодировке были отданы под символы латинского алфавита, управляющие символы (такие как переносы строк, табуляция и т.д.) и грамматические символы. Остальные отводились под национальные языки. То есть получилось что первые 128 символов всегда одинаковые, а если хочешь закодировать свой родной язык пожалуйста, используй оставшуюся емкость. Собственно так и появился огромный зоопарк национальных кодировок. И теперь сами можете представить, вот например я находясь в России беру и создаю текстовый документ, у меня по умолчанию он создается в кодировке Windows-1251 (русская кодировка использующаяся в ОС Windows) и отсылаю его кому то, например в США. Даже то что мой собеседник знает русский язык, ему не поможет, потому что открыв мой документ на своем компьютере (в редакторе с дефолтной кодировкой той же самой ASCII) он увидит не русские буквы, а кракозябры. Если быть точнее, то те места в документе которые я напишу на английском отобразятся без проблем, потому что первые 128 символов кодировок Windows-1251 и ASCII одинаковые, но вот там где я написал русский текст, если он в своем редакторе не укажет правильную кодировку будут в виде кракозябр.

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

Небольшой практикум ASCII

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

Вот таблица символов ASCII:

Тут имеем 3 колонки:

  • номер символа в десятичном формате
  • номер символа в шестнадцатиричном формате
  • представление самого символа.

Итак, закодируем строку «ok» (англ.) в кодировке ASCII. Символ «o» (англ.) имеет позицию 111 в десятичном виде и

6F

в шестнадцатиричном. Переведем это в двоичную систему —

01101111

. Символ «k» (англ.) — позиция 107 в десятеричной и

6B

в шестнадцатиричной, переводим в двоичную —

01101011

. Итого строка «ok» закодированная в ASCII будет выглядеть так —

01101111 01101011

. Процесс декодирования будет обратный. Берем по 8 бит, переводим их в 10-ичную кодировку, получаем номер символа, смотрим по таблице что это за символ.

Unicode

С предпосылками создания общей таблицы для всех в мире символов, разобрались. Теперь собственно, к самой таблице. Unicode — именно эта таблица и есть (это не кодировка, а именно таблица символов). Она состоит из 1 114 112 позиций. Большинство этих позиций пока не заполнены символами, так что вряд ли понадобится это пространство расширять.

Разделено это общее пространство на 17 блоков, по 65 536 символов в каждом. Каждый блок содержит свою группу символов. Нулевой блок — базовый, там собраны наиболее употребляемые символы всех современных алфавитов. Во втором блоке находятся символы вымерших языков. Есть два блока отведенные под частное использование. Большинство блоков пока не заполнены.

Итого емкость символов юникода составляет от 0 до 10FFFF (в шестнадцатиричном виде).

Записываются символы в шестнадцатиричном виде с приставкой «U+». Например первый базовый блок включает в себя символы от U+0000 до U+FFFF (от 0 до 65 535), а последний семнадцатый блок от U+100000 до U+10FFFF (от 1 048 576 до 1 114 111).

Отлично теперь вместо зоопарка национальных кодировок, у нас есть всеобъемлющая таблица, в которой зашифрованы все символы которые нам могут пригодиться. Но тут тоже есть свои недостатки. Если раньше каждый символ был закодирован одним байтом, то теперь он может быть закодирован разным количеством байтов. Например для кодирования всех символов английского алфавита по прежнему достаточно одного байта например тот же символ «o» (англ.) имеет в юникоде номер U+006F, то есть тот же самый номер как и в ASCII — 6F в шестнадцатиричной и 111 в десятеричной. А вот для кодирования символа «U+103D5» (это древнеперсидская цифра сто) — 103D5 в шестнадцатиричной и 66 517 в десятеричной, тут нам потребуется уже три байта.

Решить эту проблему уже должны юникод-кодировки, такие как UTF-8 и UTF-16. Далее речь пойдет про них.

UTF-8

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

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

Немного отступлю от темы, надо написать про совместимость ASCII и UTF

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

Давайте возьмем символ «o»(англ.) из примера про ASCII выше. Помним что в таблице ASCII символов он находится на 111 позиции, в битовом виде это будет 01101111. В таблице юникода этот символ — U+006F что в битовом виде тоже будет 01101111. И теперь так, как UTF — это кодировка переменной длины, то в ней этот символ будет закодирован одним байтом. То есть представление данного символа в обеих кодировках будет одинаково. И так для всего диапазона символов от 0 до 128. То есть если ваш документ состоит из английского текста то вы не заметите разницы если откроете его и в кодировке UTF-8 и UTF-16 и ASCII (прим. в UTF-16 такие символы все равно будут закодированы двумя байтами, по этому вы не увидите разницы, если ваш редактор будет игнорировать нулевые байты), и так до момента пока вы не начнете работать с национальным алфавитом.

Сравним на практике как будет выглядеть фраза «Hello мир» в трех разных кодировках: Windows-1251 (русская кодировка), ISO-8859-1 (кодировка западно-европейских языков), UTF-8 (юникод-кодировка). Суть данного примера состоит в том что фраза написана на двух языках. Посмотрим как она будет выглядеть в разных кодировках.

В кодировке ISO-8859-1 нет таких символов «м», «и» и «р».

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

Будем считать что изначально фраза была записана в кодировке Windows-1251. Исходя из таблицы выше запишем эту фразу в двоичном виде, в кодировке Windows-1251. Для этого нам потребуется всего только перевести из десятеричной или шестнадцатиричной системы (из таблицы выше) символы в двоичную.

01001000 01100101 01101100 01101100 01101111 00100000 11101100 11101000 11110000
Отлично, вот это и есть фраза «Hello мир» в кодировке Windows-1251.

Теперь представим что вы имеете файл с текстом, но не знаете в какой кодировке этот текст. Вы предполагаете что он в кодировке ISO-8859-1 и открываете его в своем редакторе в этой кодировке. Как сказано выше с частью символов все в порядке, они есть в этой кодировке, и даже находятся на тех же местах, но вот с символами из слова «мир» все сложнее. Этих символов в этой кодировке нет, а на их местах в кодировке ISO-8859-1 находятся совершенно другие символы. А конкретно «м» — позиция 236, «и» — 232. «р» — 240. И на этих позициях в кодировке ISO-8859-1 находятся следующие символы позиция 236 — символ «ì», 232 — «è», 240 — «ð»

Значит фраза «Hello мир» закодированная в Windows-1251 и открытая в кодировке ISO-8859-1 будет выглядеть так: «Hello ìèð». Вот и получается что эти две кодировки совместимы лишь частично, и корректно перекодировать строку из одной кодировке в другую не получится, потому что там просто напросто нет таких символов.

Тут и будут необходимы юникод-кодировки, а конкретно в данном случае рассмотрим UTF-8. То что символы в ней могут быть закодированы разным количеством байтов от 1 до 4 мы уже выяснили. Теперь стоит сказать что с помощью UTF могут быть закодированы не только 256 символов, как в двух предыдущих, а вобще все символы юникода

Работает она следующим образом. Первый бит каждого байта кодирующего символ отвечает не за сам символ, а за определение байта. То есть например если ведущий (первый) бит нулевой, то это значит что для кодирования символа используется всего один байт. Что и обеспечивает совместимость с ASCII. Если внимательно посмотрите на таблицу символов ASCII то увидите что первые 128 символов (английский алфавит, управляющие символы и знаки препинания) если их привести к двоичному виду, все начинаются с нулевого бита (будьте внимательны, если будете переводить символы в двоичную систему с помощью например онлайн конвертера, то первый нулевой ведущий бит может быть отброшен, что может сбить с толку).

01001000 — первый бит ноль, значит 1 байт кодирует 1 символ -> «H»

01100101 — первый бит ноль, значит 1 байт кодирует 1 символ -> «e»

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

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

11010000 10111100 — в начале 110, значит 2 байта кодируют 1 символ. Второй байт в таком случае всегда начинается с 10. Итого отбрасываем управляющие биты (начальные, которые выделены красным и зеленым) и берем все оставшиеся (10000111100), переводим их в шестнадцатиричный вид (043С) -> U+043C в юникоде равно символ «м».

для трех-байтовых символов в первом байте ведущие биты — 1110

11101000 10000111 101010101 — суммируем все кроме управляющих битов и получаем что в 16-ричной равно 103В5, U+103D5 — древнеперситдская цифра сто (10000001111010101)

для четырех-байтовых символов в первом байте ведущие биты — 11110

11110100 10001111 10111111 10111111 — U+10FFFF это последний допустимый символ в таблице юникода (100001111111111111111)

Теперь, при желании, можем записать нашу фразу в кодировке UTF-8.

UTF-16

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

Начнем с символов которые кодируются одной кодовой парой. Легко посчитать что таких символов может быть 65 535 (2в16), что полностью совпадает с базовым блоком юникода. Все символы находящиеся в этом блоке юникода в кодировке UTF-16 будут закодированы одной кодовой парой (двумя байтами), тут все просто.

символ «o» (латиница) — 00000000 01101111

символ «M» (кириллица) — 00000100 00011100

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

Для начала введем понятия суррогатной пары. Суррогатная пара — это две кодовые пары используемые для кодирования одного символа (итого 4 байта). Для таких суррогатных пар в таблице юникода отведен специальный диапазон от D800 до DFFF. Это значит, что при преобразовании кодовой пары из байтового вида в шестнадцатиричный вы получаете число из этого диапазона, то перед вами не самостоятельный символ, а суррогатная пара.

Чтобы закодировать символ из диапазона 1000010FFFF (то есть символ для которого нужно использовать более одной кодовой пары) нужно:

  1. из кода символа вычесть 10000(шестнадцатиричное) (это наименьшее число из диапазона 1000010FFFF)
  2. в результате первого пункта будет получено число не больше FFFFF, занимающее до 20 бит
  3. ведущие 10 бит из полученного числа суммируются с D800 (начало диапазона суррогатных пар в юникоде)
  4. следующие 10 бит суммируются с DC00 (тоже число из диапазона суррогатных пар)
  5. после этого получатся 2 суррогатные пары по 16 бит, первые 6 бит в каждой такой паре отвечают за определение того что это суррогат,
  6. десятый бит в каждом суррогате отвечает за его порядок если это 1 то это первый суррогат, если 0, то второй

Разберем это на практике, думаю станет понятнее.

Для примера зашифруем символ, а потом расшифруем. Возьмем древнеперсидскую цифру сто (U+103D5):

  1. 103D510000 = 3D5
  2. 3D5 = 0000000000 1111010101 (ведущие 10 бит получились нулевые приведем это к шестнадцатиричному числу, получим 0 (первые десять), 3D5 (вторые десять))
  3. 0 + D800 = D800 (1101100000000000) первые 6 бит определяют что число из диапазона суррогатных пар десятый бит (справа) нулевой, значит это первый суррогат
  4. 3D5 + DC00 = DFD5 (1101111111010101) первые 6 бит определяют что число из диапазона суррогатных пар десятый бит (справа) единица, значит это второй суррогат
  5. итого данный символ в UTF-16 — 1101100000000000 1101111111010101

Теперь наоборот раскодируем. Допустим что у нас есть вот такой код — 1101100000100010 1101111010001000:

  1. переведем в шестнадцатиричный вид = D822 DE88 (оба значения из диапазона суррогатных пар, значит перед нами суррогатная пара)
  2. 1101100000100010 — десятый бит (справа) нулевой, значит первый суррогат
  3. 1101111010001000 — десятый бит (справа) единица, значит второй суррогат
  4. отбрасываем по 6 бит отвечающих за определение суррогата, получим 0000100010 1010001000 (8A88)
  5. прибавляем 10000 (меньшее число суррогатного диапазона) 8A88 + 10000 = 18A88
  6. смотрим в таблице юникода символ U+18A88 = Tangut Component-649. Компоненты тангутского письма.

Спасибо тем кто смог дочитать до конца, надеюсь было полезно и не очень занудно.

Вот некоторые интересные ссылки по данной теме:
habr.com/ru/post/158895 — полезные общие сведения по кодировкам
habr.com/ru/post/312642 — про юникод
unicode-table.com/ru — сама таблица юникод символов

Ну и собственно куда же без нее
ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4 — юникод
ru.wikipedia.org/wiki/ASCII — ASCII
ru.wikipedia.org/wiki/UTF-8 — UTF-8
ru.wikipedia.org/wiki/UTF-16 — UTF-16

Как сменить кодировку текстового файла с помощью Блокнота в Windows

Фишка кодировки текстовых фалов в том, что хранятся не сами буквы (символы), а ссылки на них в таблице кодировок. Если с латинским буквами, арабскими цифрами и основными символами типа точек, тире и запятых никаких проблем не возникает: во многих таблицах кодировок все эти буквы, цифры и символы находятся в одних и тех же ячейках, то с кириллицей всё сложно. Например, в разных кодировках буква Ы может находиться в ячейке 211, 114 и 69.

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

То есть сервер отдаёт не просто HTML-страничку, а указывает, что у неё кодировка Windows-1251. Браузер таким образом, считывая информацию о кодировке полученного файла, подставляет символы из указанной кодировки.

Но и это ещё не всё веселье. Например, если на сервере установлена операционная система из семейства *nix (с кодировкой по умолчанию UTF-8), а мы шлём файл из нашей любимой ОС Windows, где кодировка текстовых фалов по умолчанию стоит почему-то ANSI, то как вы думаете сервер будет работать с текстом, кодировка которой не совпадает с его? Правильно! Как-то будет работать! Но результат работы может быть непредсказуемым и удивительным. =)

Надеюсь, что мотивация для обращение необходимого внимания на кодировку достаточная и можно перейти к сути вопроса: «Как же, чёрт возьми, сохранить файл в нужной кодировке?!»

В этой статье речь пойдёт как раз о том, как сохранить текстовый файл с помощью программы Блокнот (Notepad) в Windows в нужной кодировке.

Для того, чтобы изменить кодировку текстового файла, конечно же сперва его нужно создать. А после того, как файл создан, нужно ещё суметь его открыть. Самый простой способ отрыть файл — это двойной клик левой кнопкой мыши по его иконке в проводнике:

Если до этого настройки Windows не менялись, то файлы с расширением .txt открываются в Блокноте. (Это ещё один способ, как отрыть Блокнот (Notepad).)

Чтобы поменять кодировку в открывшемся файле, нужно в меню «Файл» текстового редактора Блокнот выбрать пункт «Сохранить как…»:

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

После того, как нужная кодировка выбрана, можно кликнуть на кнопку «Сохранить» или просто нажать Enter:

Так как мы не изменили имя файла, то будет перезаписан тот же самый файл. Поэтому возникает справедливый вопрос: «Файл с таким именем уже существует. Заменить?» Ну да, мы к этому и стремимся! Поменять кодировку у этого файла. Поэтому его нужно перезаписать с новой кодировкой. Соглашаемся:

Всё! Миссия по смене кодировки в текстовом файле выполнена! Файл сохранён с новой кодировкой. Можно закрыть текстовый редактор и устроить празднование этого решающего события! =D

Заберите ссылку на статью к себе, чтобы потом легко её найти 😉

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )

Кодировка windows 1251 в сайтостроении

Кодировка windows 1251 была создана в начале 90 годов для русификации программных продуктов, выпускаемых корпорацией Microsoft:

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

  • 0xFF (25510) – это код, который зарезервирован для символа «я». В программах, которые не поддерживают чистый 8-ой бит, часто возникают непредсказуемые проблемы;
  • Нет псевдографики, которая присутствует в KOI8, CP866.

Ниже приведены символы из Code Page 1251 или сокращенно СР1251 (числа под символами являются кодом в шестнадцатеричной системе такого же символа в Юникоде):

Нередко у web-разработчиков и блогеров, обладающих различной квалификацией возникает проблема с кодировкой страниц: вместо подготовленного текста появляются неизвестные, нечитаемые символы. Чтобы разобраться с данной проблемой, необходимо понимать суть термина «кодировка страницы».

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

Таблица кодировок не является универсальной, то есть, для расшифровки текста необходимо использовать ту, которая соответствует кодировке символов:

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

— между тегом <head> и закрывающим его </head> нужно прописать <meta http-equiv=»Content-Type» content=»text/html; charset=windows-1251″> — исходя из этой строки, браузер будет использовать символы русского алфавита для отображения текста на странице.

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

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

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

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

Для того чтобы для веб-ресурса была задана кодировка виндовс-1251, необходимо найти (или создать) файл .htaccess. Это файл, который хранит в себе дополнительные настройки и описания конфигураций web-сервера.

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

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

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

Основные кодировки символов текста веб-страниц.

Из предыдущей заметки вы уже имеете определенное представление о том, что такое кодировка веб-страниц.

Сейчас давайте остановимся на вопросе какие бывают кодировки.

На заре развития компьютерной техники, когда компьютеры были слабые и не было большого объема памяти, кодировки представляли собой таблицу все символы, которой могли быть представлены всеми возможными комбинациями числа в 16-ричной системе счисления (это 1 байт информации) или 256 возможных символов.

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

Для символов латиницы, как правило, использовалась кодировка ASCII.

Вот, как эта таблица выглядит:

Для символов кириллицы были созданы кодировки windows-1251 и KOI8-R. Это произошло из-за того, что этими кодировками занимались сразу несколько фирм, чтобы обеспечить поддержку русского языка для своих компьютеров.

Вот таблица с кодировкой Windows-1251

Кодировка KOI8-R:

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

Стоило даже текст на кириллице, который сохранен в кодировке windows-1251 открыть в кодировке KOI8-R, как тут же появлялись проблемы.

Нужно было искать какое-то решение.

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

Это огромная таблица, которая содержит более 1 миллиона закодированных символов.

Вот небольшая часть этой таблицы:

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

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

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

Ко всем урокам курса «Быстрый старт в HTML для начинающих»

Encoding 101 — Часть 2: Windows-1252 против UTF-8

Продолжение с Кодировка 101 часть 1

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

Различия между разными кодировками

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

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

Давайте сравним две наиболее распространенные кодировки, используемые для западных языков, Windows-1252 и UTF-8.

Окна-1252

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

Windows-1252 — это однобайтовая кодировка, что означает, что каждый символ кодируется как однобайтный, так же, как и в ASCII. Однако, поскольку Windows-1252 использует полные 8 бит каждого байта для своих кодовых точек (в отличие от 7-битных кодов ASCII), она содержит 256 кодовых точек по сравнению с 128 ASCII. Первая половина кодовых точек идентична те, которые определены в ASCII, а вторая половина кодирует дополнительные символы, которых нет в наборе символов ASCII.

UTF-8

UTF-8 — это кодировка из стандарта Unicode. UTF означает формат преобразования Unicode, а цифра 8 в конце означает, что это 8-битная кодировка переменной. Это означает, что каждый символ использует не менее 8 бит для своей кодовой точки, но некоторые могут использовать больше. Как и в Windows-1252, первые 128 кодовых точек идентичны ASCII, но выше эти две кодировки значительно отличаются. В то время как Windows-1252 содержит всего 256 кодовых точек, UTF-8 имеет кодовые точки для всего набора символов Unicode.Это делается путем определения некоторых байтовых значений выше 127 в качестве префиксов для дальнейших байтовых значений. Например, символ авторского права (©) кодируется как C2 A9, а знак фунта (£) кодируется как C2 A3. Поскольку байт C2 разработан как байт префикса, это открывает дополнительные 256 2-байтовых кодовых точек с C2 в качестве первого байта.

Такой дизайн означает, что большинство обычных символов, используемых в западных языках, занимают только один байт пространства, в то время как многобайтовые кодировки используются реже.В результате UTF-8 может кодировать любой символ, сохраняя при этом относительно небольшой размер данных. Это полезно как для постоянного хранения (файлы небольшого размера), так и для передачи (например, открытия веб-страницы). Из-за этого UTF-8 в настоящее время является наиболее доминирующей кодировкой, используемой во всемирной паутине, и по состоянию на сентябрь 2019 года на ее долю приходилось 94% всех веб-страниц.

Сравнение кодировок

Давайте посмотрим на конкретном примере того, как эти две кодировки отличаются друг от друга. Мы будем использовать слово «Naïveté», которое содержит два символа, отличных от ASCII (у него есть альтернативные варианты написания без них, но пример — это признанное допустимое написание слова на английском языке).

Как мы видим, символы ï и é существуют в обеих кодировках, но кодируются двумя разными способами. В Windows-1252 все символы кодируются с использованием одного байта, поэтому кодировка содержит всего 256 символов. Однако в UTF-8 эти два символа кодируются с использованием 2 байтов каждый. В результате слово занимает на два байта больше при использовании кодировки UTF-8, чем при использовании кодировки Windows-1252.

Итак, разные кодировки обрабатывают одни символы по-разному.В следующей и третьей частях этой серии блогов мы рассмотрим, как это может вызвать у нас проблемы. Найдите здесь «Кодировку 101 — часть 3».

html — мета-кодировка windows-1252 против UTF-8

Ответ на ваш первый вопрос — да. Рекомендуется полностью изменить все атрибуты кодировки символов для всех ваших документов HTML 5.

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

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

и замените его на

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

Спецификация HTML5 поощряет веб-разработчиков использовать UTF-8.
набор символов, который охватывает почти все символы и символы
в мире!
—W3Schools.com

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

Для других документов вы все равно должны изменить кодировку для них как UTF-8, даже если у вас есть спецификация.

Если у вас есть метка порядка байтов (BOM) UTF-8 в начале файла
затем последние версии браузера, отличные от Internet Explorer 10 или 11
будет использовать это, чтобы определить, что кодировка вашей страницы — UTF-8.Это
имеет более высокий приоритет, чем любое другое объявление, включая HTTP
заголовок.

Вы можете пропустить объявление мета-кодировки, если у вас есть спецификация, но мы
рекомендую сохранить его, так как он помогает людям, смотрящим на
исходный код, чтобы выяснить, какова кодировка страницы.
—w3.org

Удачи и удачного кодирования! 🙂

Чем отличаются файлы .txt для Linux и Windows (кодировка Unicode)

Используемая кодировка Unicode не зависит от ОС.

Даже Windows notepad.exe имеет перечисленные параметры — (я заключу в скобки, что под этим подразумевается под блокнотом)
ANSI (не Unicode), Unicode (блокнот означает Unicode LE), Unicode Big Endian (BE), UTF-8

ANSI — это не Unicode, он включает в себя очень ограниченное количество символов, поэтому оставим это в стороне.

Но смотри, даже блокнот умеет LE, или BE, или UTF-8

И кроме блокнота, UTF-8 может быть с спецификацией или без нее.

И я использую Windows с Cygwin, хотя порты Windows вполне могут работать \ r \ n, даже если вы укажете \ n Видел, как это делает sed.

Нет единого правила того, какую кодировку Unicode использует конкретная ОС. Если бы она была, это была бы не очень гибкая ОС.

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

Получите Cygwin и xxd и / или шестнадцатеричный редактор и посмотрите, что на самом деле находится внутри файла. Используйте команду ‘file’, чтобы помочь идентифицировать файл. Тогда вы действительно увидите, что такое UTF 16bit LE. Что такое UTF 16bit BE. Что такое UTF-8 (а UTF-8 может быть с спецификацией или без нее).

Иногда вы можете указать блокноту сохранить как Unicode (под блокнотом подразумевается 16-битный unicode с прямым порядком байтов), но этого не произойдет. Но выберите шрифт Unicode, такой как arial unicode, и скопируйте некоторые символы Unicode из charmap, и он будет … И хороший способ увидеть, что делает блокнот или другое программное обеспечение, — это посмотреть на шестнадцатеричный файл файла

  C: \ asdf> notepad.exe a.a

C: \ asdf> файл a.a
a.a; Текст Unicode UTF-16 с прямым порядком байтов без конца строки

C: \ asdf> введите a.a
aaa 慡 ൡ <- хотя отображается aaa, за которым следуют некоторые поля в моем окне cmd
C: \ asdf>

C: \ asdf> xxd а.Часть байта, в которой хранится 61, является частью меньшего значения, которая с LE сохраняется первой.
  

Команда dd (команда * nix, которую я запускаю из cygwin в Windows) может переключать ее

  C: \ asdf> xxd -p а.а.
fffe6100610061006161610d

C: \ asdf> файл a.a
a.a; Текст Unicode UTF-16 с прямым порядком байтов без конца строки

C: \ asdf> dd if = a.a conv = тампон = a.a2
0 + 1 записей в
0 + 1 записей
Скопировано 12 байтов (12 B), 0 секунд, бесконечность бит / с

C: \ asdf> введите a.a2
а а а аа
C: \ asdf> xxd -p а.а2
feff00610061006161610d61

C: \ asdf> файл a.a2
a.a2; Текст Unicode с прямым порядком байтов в кодировке UTF-16, без терминаторов строк

C: \ asdf>
  

И сам блокнот может сохранять как UTF-16 Big Endian или UTF-16 Little Endian или UTF-8

Если вы технический специалист или даже просто пользователь блокнота, вы не привязаны к одной кодировке из-за вашей ОС!

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

Sublime (текстовый редактор для Windows) по умолчанию сохраняет кодировку Unicode как UTF-8.

Я использую Windows и иногда юникод, и в основном использую UTF-8.

И поскольку Windows настолько гибка в техническом отношении, Linux по крайней мере так же гибок в техническом отношении!

Поддерживаемые кодировки

Каноническое имя для java.nio API

Каноническое имя для java.io API и
java.lang API

Описание

Big5

Big5

Big5, традиционный китайский

Big5-HKSCS

Big5_HKSCS

Big5 с расширениями для Гонконга, традиционный китайский
(включая редакцию 2001 г.)

EUC-JP

EUC_JP

JISX 0201, 0208 и 0212, кодировка EUC, японский язык

EUC-KR

EUC_KR

KS C 5601, кодировка EUC, корейский

ГБ18030

ГБ18030

Упрощенный китайский, стандарт КНР

ГБ2312

EUC_CN

GB2312, кодировка EUC, упрощенный китайский

ГБК

ГБК

ГБК, упрощенный китайский

IBM-Thai

Cp838

IBM Thailand расширенный SBCS

IBM01140

Cp1140

Вариант Cp037 с символом евро

IBM01141

Cp1141

Вариант Cp273 с символом евро

IBM01142

Cp1142

Вариант Cp277 с символом евро

IBM01143

Cp1143

Вариант CP278 с символом евро

IBM01144

Cp1144

Вариант CP280 с символом евро

IBM01145

Cp1145

Вариант CP284 с символом евро

IBM01146

CP1146

Вариант CP285 с символом евро

IBM01147

Cp1147

Вариант Cp297 с символом евро

IBM01148

Cp1148

Вариант CP500 с символом евро

IBM01149

Cp1149

Вариант Cp871 с символом евро

IBM037

Cp037

США, Канада (двуязычный, французский), Нидерланды, Португалия, Бразилия,
Австралия

IBM1026

Cp1026

IBM Latin-5, Турция

IBM1047

Cp1047

Набор символов Latin-1 для хостов EBCDIC

IBM273

Cp273

IBM Австрия, Германия

IBM277

Cp277

IBM Дания, Норвегия

IBM278

Cp278

IBM Финляндия, Швеция

IBM280

Cp280

IBM Италия

IBM284

Cp284

IBM Каталонский / Испания, Испанский Латинская Америка

IBM285

Cp285

IBM Великобритания, Ирландия

IBM297

Cp297

IBM Франция

IBM420

Cp420

IBM Арабский

IBM424

Cp424

IBM Иврит

IBM500

Cp500

EBCDIC 500V1

IBM860

Cp860

MS-DOS Португальский

IBM861

Cp861

MS-DOS Исландский

IBM863

Cp863

MS-DOS Канадский французский

IBM864

Cp864

PC Арабский

IBM865

Cp865

MS-DOS Nordic

IBM868

Cp868

MS-DOS Пакистан

IBM869

Cp869

IBM Новогреческий

IBM870

Cp870

IBM Multilingual Latin-2

IBM871

Cp871

IBM Исландия

IBM918

Cp918

IBM, Пакистан (урду)

ISO-2022-CN

ISO2022CN

GB2312 и CNS11643 в форме ISO 2022 CN, упрощенной и
Традиционный китайский (только преобразование в Unicode)

ISO-2022-JP

ISO2022JP

JIS X 0201, 0208, в форме ISO 2022, японский

ISO-2022-KR

ISO2022KR

ISO 2022 KR, корейский

ISO-8859-3

ISO8859_3

Латинский алфавит No.3

ISO-8859-6

ISO8859_6

Латинский / арабский алфавит

ISO-8859-8

ISO8859_8

Латинский / еврейский алфавит

JIS_X0201

JIS_X0201

JIS X 0201

JIS_X0212-1990

JIS_X0212-1990

JIS X 0212

Shift_JIS

SJIS

Shift-JIS, японский

ТИС-620

TIS620

TIS620, тайский

окна-1255

Cp1255

Windows Иврит

окна-1256

Cp1256

Windows арабский

окна-1258

Cp1258

Windows Вьетнамский

окна-31j

MS932

Windows Японский

x-Big5-Solaris

Big5_Solaris

Big5 с семью дополнительными отображениями идеограммы Ханзи
для Solaris zh_TW.BIG5 язык

x-euc-jp-linux

EUC_JP_LINUX

JISX 0201, 0208, кодировка EUC, японский язык

х-EUC-TW

EUC_TW

CNS11643 (плоскость 1-7,15), кодировка EUC, традиционный китайский

x-eucJP-Open

EUC_JP_Solaris

JISX 0201, 0208, 0212, кодировка EUC, японский язык

х-IBM1006

Cp1006

IBM AIX Пакистан (урду)

х-IBM1025

CP1025

IBM Multilingual Cyrillic: Болгария, Босния, Герцеговина,
Македония (FYR)

х-IBM1046

Cp1046

IBM Arabic — Windows

х-IBM1097

Cp1097

IBM Иран (фарси) / персидский

х-IBM1098

Cp1098

IBM, Иран (фарси) / персидский (ПК)

х-IBM1112

Cp1112

IBM Латвия, Литва

х-IBM1122

Cp1122

IBM Эстония

х-IBM1123

Cp1123

IBM Украина

х-IBM1124

Cp1124

IBM AIX Украина

х-IBM1381

Cp1381

IBM OS / 2, DOS Китайская Народная Республика (КНР)

х-IBM1383

Cp1383

IBM AIX Китайская Народная Республика (КНР)

х-IBM33722

Cp33722

IBM-eucJP — японский (расширенный набор 5050)

х-IBM834

Cp834

IBM EBCDIC DBCS-only Korean

х-IBM856

Cp856

IBM Иврит

х-IBM875

Cp875

IBM Греческий

х-IBM921

Cp921

IBM Латвия, Литва (AIX, DOS)

х-IBM922

Cp922

IBM Эстония (AIX, DOS)

х-IBM930

Cp930

японских катакана и кандзи смешанные с 4370 UDC, расширенный набор
5026

х-IBM933

Cp933

Корейский смешанный с 1880 УДК, расширенный набор 5029

х-IBM935

Cp935

Узел на упрощенном китайском, смешанный с 1880 UDC, расширенный набор
5031

х-IBM937

Cp937

Традиционный китайский хост, соединенный с 6204 UDC, расширенный набор
5033

х-IBM939

Cp939

Японские латинские кандзи, смешанные с 4370 УДК, расширенный набор из 5035

х-IBM942

Cp942

IBM OS / 2 Японский, расширенный набор Cp932

х-IBM942C

Cp942C

Вариант Cp942

х-IBM943

Cp943

IBM OS / 2 на японском языке, расширенный набор Cp932 и Shift-JIS

х-IBM943C

Cp943C

Вариант Cp943

х-IBM948

Cp948

OS / 2 Китайский (Тайвань) расширенный набор 938

х-IBM949

Cp949

ПК Корейский

х-IBM949C

Cp949C

Вариант Cp949

х-IBM950

CP950

ПК Китайский (Гонконг, Тайвань)

х-IBM964

Cp964

AIX китайский (Тайвань)

х-IBM970

Cp970

AIX корейский

x-ISCII91

ISCII91

ISCII91 кодировка индийских скриптов

х-ISO2022-CN-CNS

ISO2022_CN_CNS

CNS11643 в форме ISO 2022 CN, традиционный китайский (преобразование
только из Unicode)

x-ISO2022-CN-GB

ISO2022_CN_GB

GB2312 в форме ISO 2022 CN, упрощенный китайский (преобразование из
Только Unicode)

х-iso-8859-11

х-iso-8859-11

Латинский / тайский алфавит

х-JIS0208

х-JIS0208

JIS X 0208

x-JISAutoDetect

JISAutoDetect

Обнаруживает и преобразует Shift-JIS, EUC-JP, ISO 2022 JP
(преобразование только в Unicode)

х-Джохаб

х-Джохаб

Корейский, набор символов Джохаб

x-Mac Арабский

Макарабский

Macintosh Арабский

x-MacCentralEurope

MacCentralEurope

Macintosh Latin-2

x-MacCroatian

МакКроатский

Macintosh Хорватский

x-MacCyrillic

MacCyrillic

Macintosh Кириллица

х-MacDingbat

MacDingbat

Macintosh Dingbat

х-MacGreek

MacGreek

Macintosh Греческий

x-Mac, Иврит

MacHebrew

Macintosh Иврит

x-MacIceland

MacIceland

Macintosh Исландия

x-MacRoman

MacRoman

Macintosh Roman

x-Mac Румыния

MacRomania

Macintosh Румыния

x-MacSymbol

MacSymbol

Символ Macintosh

х-MacThai

MacThai

Тайский Macintosh

x-Mac Турецкий

MacTurkish

Macintosh Турецкий

x-Mac Украина

Mac Украина

Macintosh Украина

х-MS950-HKSCS

MS950_HKSCS

Windows Традиционный китайский с расширениями для Гонконга

x-mswin-936

MS936

Упрощенный китайский для Windows

х-ПКК

PCK

Версия Shift_JIS для Solaris

x-SJIS_0213

x-SJIS_0213

Shift_JISX0213

x-windows-50220

Cp50220

Кодовая страница Windows 50220 (7-битная реализация)

x-windows-50221

Cp50221

Кодовая страница Windows 50221 (7-битная реализация)

x-окна-874

MS874

Windows Тайский

x-windows-949

MS949

Windows Корейский

x-windows-950

MS950

Windows Традиционный китайский

x-windows-iso2022jp

x-windows-iso2022jp

Вариант ISO-2022-JP (на основе MS932)

Как изменить кодировку по умолчанию в Windows 10?

Как изменить кодировку в Windows 10?

Просмотр настроек локали системы для Windows

  1. Щелкните Пуск, затем Панель управления.
  2. Щелкните Часы, язык и регион.
  3. Windows 10, Windows 8: щелкните Регион. …
  4. Щелкните вкладку «Администрирование». …
  5. В разделе «Язык для программ, не поддерживающих Юникод» щелкните «Изменить языковой стандарт системы» и выберите нужный язык.
  6. Щелкните OK.

Как изменить кодировку по умолчанию?

2 ответа

  1. Для Eclipse кодировку по умолчанию для новых файлов можно установить в Windows> Настройки> Общие> Типы контента (см. Сообщение в Eclipse Community Forms)
  2. Для Notepad ++ перейдите в Настройки> Настройки> Новый документ / По умолчанию / Directory и установите кодировку UTF-8.

Какая кодировка используется по умолчанию в Windows 10?

В Windows предполагается, что кодировка символов по умолчанию — UTF-8. Поэтому, если Локаль операционной системы по умолчанию — «English_USA. 1252 ”- языковой стандарт по умолчанию для Boost.

Как изменить кодировку Windows по умолчанию на UTF-8?

Откройте Панель управления Windows -> Регион. Перейдите на вкладку «Администрирование» и нажмите «Изменить язык системы…» Снимите флажок рядом с бета-версией: использовать UTF-8 для поддержки языков по всему миру.Щелкните ОК и перезагрузите компьютер.

Использует ли Windows 10 UTF8?

Начиная с Windows 10, сборка 17134 (обновление за апрель 2018 г.), универсальная среда выполнения C поддерживает использование кодовой страницы UTF-8. Это означает, что строки символов, передаваемые функциям времени выполнения C, будут ожидать строки в кодировке UTF-8. … Для операционных систем Windows 10 до 17134 поддерживается только статическое связывание.

Как изменить кодировку файла в Windows?

Выберите стандарт кодирования при открытии файла

  1. Щелкните вкладку Файл.
  2. Щелкните Параметры.
  3. Щелкните «Дополнительно».
  4. Прокрутите до раздела «Общие» и установите флажок «Подтверждать преобразование формата файла при открытии». …
  5. Закройте и снова откройте файл.
  6. В диалоговом окне «Преобразование файла» выберите «Закодированный текст».

Какая кодировка по умолчанию для блокнота?

Блокнот обычно использует кодировку ANSI, поэтому, если он читает файл как UTF-8, он должен угадать кодировку на основе данных в файле.Если вы сохраните файл как UTF-8, Блокнот поместит BOM (отметку порядка байтов) EF BB BF в начало файла.

Как изменить кодировку по умолчанию на UTF-8 в Excel?

Щелкните «Инструменты», затем выберите «Параметры Интернета». Перейдите на вкладку Кодировка. В раскрывающемся списке Сохранить этот документ как: выберите Юникод (UTF-8). Щелкните ОК.

Почему мы используем кодировку UTF-8?

Зачем использовать UTF-8? HTML-страница может быть только в одной кодировке. Вы не можете кодировать разные части документа в разных кодировках.Кодировка на основе Unicode, такая как UTF-8, может поддерживать множество языков и может размещать страницы и формы на любом сочетании этих языков.

В чем разница между UTF-8 и utf16?

Разница

Utf-8 и utf-16 обрабатывают одни и те же символы Unicode. Это обе кодировки переменной длины, требующие до 32 бит на символ. Разница в том, что Utf-8 кодирует общие символы, включая английский язык и числа, с использованием 8-бит. Utf-16 использует не менее 16 бит для каждого символа.

Какая кодировка по умолчанию для Excel?

Из памяти Excel использует машинно-зависимую кодировку ANSI. Таким образом, это будет Windows-1252 для установки EN-US, 1251 для русского языка и т. Д.

Как изменить кодировку по умолчанию в Notepad ++?

перейдите в настройки меню блокнота ++> настройки> разное. и отключите автоматическое определение кодировки символов, как показано на скриншоте ниже. затем перейдите в настройки> настройки> новый документ и установите желаемую кодировку.

Как изменить ANSI на UTF-8?

Попробуйте «Настройки» -> «Настройки» -> «Новый документ» -> «Кодировка» -> выберите UTF-8 без спецификации и отметьте «Применить» к открытым файлам ANSI. Таким образом, все открытые файлы ANSI будут обрабатываться как UTF-8 без спецификации.

Как изменить локаль Windows?

Локаль системы

  1. Выберите Пуск> Панель управления> Часы, язык и регион> Регион и язык.
  2. Откройте вкладку «Администрирование».
  3. В разделе «Язык для программ, не поддерживающих Юникод» щелкните Изменить языковой стандарт системы….
  4. Выберите целевой языковой стандарт из раскрывающегося списка Текущий языковой стандарт системы.
  5. Перезагрузите систему.

Какую кодировку символов использует Windows?

Набор символов, наиболее часто используемый сегодня в компьютерах, — это Unicode, глобальный стандарт кодировки символов. На внутреннем уровне приложения Windows используют реализацию Unicode в кодировке UTF-16. В UTF-16 большинство символов идентифицируются двухбайтовыми кодами.

Кодирование

символов в среде RStudio IDE — поддержка RStudio

RStudio IDE поддерживает символы, отличные от ASCII, для ввода и вывода.

Консоль

символа Unicode можно использовать как для ввода, так и для вывода в консоли.

Редактор исходного кода

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

Если сомневаетесь в том, какую кодировку использовать, используйте UTF-8, так как он может кодировать любой символ Unicode.

Чтение и запись файлов

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

  • Вы можете выбрать кодировку для чтения с помощью File: Reopen with Encoding , которая повторно прочитает текущий файл с диска с новой кодировкой.
  • Вы также можете сохранить открытый файл в другой кодировке с помощью File: Save with Encoding .

Команды Reopen и Save with Encoding отображают следующий диалог:

Установка кодировки по умолчанию

Если вы часто используете набор символов, отметьте «Установить как кодировку по умолчанию для исходных файлов». Вы можете просмотреть или изменить это значение по умолчанию в Инструменты: Параметры (для Windows и Linux) или Preferences (для Mac) диалоговое окно в разделе Общие .

Если вы не установите кодировку по умолчанию, файлы будут открываться с использованием UTF-8 (на рабочем столе Mac, на рабочем столе Linux и на сервере) или кодировке системы по умолчанию (в Windows).При сохранении ранее несохраненного файла RStudio попросит вас выбрать кодировку, если присутствуют символы, отличные от ASCII.

Известные проблемы

  • Если вы вызываете Sys.setlocale с "LC_CTYPE" или "LC_ALL" для изменения языкового стандарта системы во время работы RStudio, вы можете столкнуться с некоторыми незначительными проблемами, поскольку RStudio предполагает, что системная кодировка не изменяется. Если вы работаете в Windows, мы рекомендуем вам звонить только Sys.setlocale в .Rprofile. Если вы работаете на Mac или Linux и хотите изменить языковой стандарт системы, посетите форум поддержки и сообщите нам свой сценарий.
  • В Windows функция исходного кода R не работает с файлами, которые содержат символы, не являющиеся частью текущей системной кодировки. У вас могут возникнуть проблемы с командами RStudio Run All и Source on Save , поскольку они полагаются на исходный код .

Используется устаревшая кодировка «windows-1252». Документы должны использовать кодировку UTF-8.

Элемент , использующий атрибут http-экв , был обнаружен в неожиданном месте документа.Он должен появиться внутри раздела , как в этом примере:

  

  
    
     Тест 
  
  
    

Содержание страницы

Атрибут http-экв используется на веб-страницах для имитации заголовка ответа HTTP.Хотя заголовки HTTP-ответа можно установить с сервера, не каждый имеет доступ к конфигурации сервера, поэтому альтернативой является использование для определения параметров, которые в противном случае потребовали бы установки заголовка HTTP-ответа.

Наиболее популярным использованием http-Equiv является определение типа содержимого документа, как в приведенном выше примере, хотя в HTML5 вместо этого предпочтительнее использовать это:

    

Еще одно популярное использование http-Equiv — установка автоматической перезагрузки веб-страницы, например, при этом браузер будет перезагружать страницу каждые 60 секунд:

    

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

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

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