Какую кодировку выбрать: Как выбрать кодировку и исправить все проблемы с ней
Содержание
Как выбрать кодировку и исправить все проблемы с ней
ыЙТПЛБС ØàÞÚÐï ╒┌тр╪ф╪┌ПрЎ.ТруНЬ_аЭШЩ ФРбв ЬЮ!…
Нет, мы не сошли с ума. Просто сегодня будем разбираться, как устранить ошибки кодировки и вернуть на сайт читаемый текст. Узнаем, как кодировка влияет на SEO-оптимизацию, и познакомимся с полезными сервисами, которые позволят вовремя идентифицировать ошибки.
Что такое кодировка, и когда возникают ошибки с отображением текста
Если вместо нормального текста на вашем сайте отображается странный набор символов, значит, есть проблемы с кодировкой. Впрочем, иногда кодировка на сайте является стандартизированной и выбрана корректно, но вместо текста все равно отображаются иероглифы.
Кодировка – это набор символов и система их передачи для последующего вывода на экран. Кроме алфавита при помощи кодировки передаются также специальные символы и цифры.
Сегодня массово используются 2 вида кодировки: Windows-1251 и UTF-8. Чаще всего «кракозябра» появляется, когда на одном сайте используется сразу несколько видов кодировки (да, такое бывает чаще, чем может показаться на первый взгляд).
Можно выделить и другие причины неполадок:
- Используется устаревший браузер.
- В браузере / программе установлена одна кодировка, на сайте – другая. В таком случае нужно поменять кодировку в программе.
- В БД и других файлах сайта указаны несовпадающие кодировки. В этом случае нужно выбрать одну кодировку для всего сайта.
Как поменять кодировку в браузере
Проблему с кодировкой на стороне браузера исправить легко.
Internet Explorer
- Открываем проблемную веб-страницу.
- Вызываем контекстное меню, кликнув правой кнопкой мыши по любому месту на странице.
- Выбираем «Кодировка».
- Кликаем Unicode (UTF-8).
Chrome
Chrome современный и модный браузер, но вот кодировку стандартными средствами поменять в нем нельзя (сюрприз!). Будем делать это через расширение.
- Открываем магазин Chrome.
- Кликаем «Расширения» в левой части экрана.
- Указываем слово «кодировка».
- Устанавливаем любое подходящее расширение.
Safari
- Выбираем пункт «Вид».
- Кликаем по разделу «Кодировка текста».
- Выбраем вариант Unicode (UTF-8).
Firefox
- Выбираем пункт «Вид».
- Кликаем по раздел «Кодировка текста».
- Нужно выбрать вариант Unicode (UTF-8).
Как выбрать кодировку
Если в качестве CMS вы используете WordPress, Joomla, Drupal, OpenCart или TYPO3, то дополнительно настраивать ничего не нужно. Эти движки по умолчанию работает именно с UTF-8. Все должно работать из коробки. Просто убедитесь, что везде прописана UTF-8.
В самых сложных случаях придется отдельно скачивать шаблоны под конкретную кодировку, предварительно создав MySQL. Последнее актуально, например, для DLE. Если же ваш cайт полностью самописный, просто проследите за тем, чтобы везде была установлена идентичная кодировка, желательно – UTF-8.
Какую кодировку выбрать
Сегодня большинство экспертов солидарны в том, что наиболее удобной кодировкой является UTF-8. Этот стандарт поддерживает большинство браузеров, баз данных, серверов и языков. Еще одно преимущество – она изначально была кроссплатформенной.
Сквозная аналитика для чайников: подводные камни и тонкости настройки
UTF-8 может закодировать любой unicode-символ. Пожалуй, именно это достоинство позволило кодировке стать одной из самых популярных в мире.
Windows-1251 известна в меньшей степени, но Windows-1251 и не отличается такой универсальностью и распространенностью как UTF-8. Проблемы с кодировкой могут встречаться на всех сайтах, даже на отлаженных площадках, которые работают в течение многих лет. Чтобы предотвратить проблемы с «кракозябрами» на своем сайте в будущем, необходимо с самого начала выбирать единую кодировку. Как вы уже догадались, лучший кандидат на эту роль – UTF-8.
Как узнать, какая кодировка используется на моем сайте
Узнать, какая кодировка используется на всем сайте или на конкретной странице, можно за несколько секунд. Для этого нужно просмотреть исходник HTML-страницы. Чтобы увидеть его, используем одновременное нажатие горячих клавиш Сtrl + U (на «Маке» активируем шорткатом Option/Alt + Command + U). Появится такое окно:
Теперь используем сочетание горячих клавиш Ctrl + F (Command + F) – откроется окно поиска. Вводим в поисковую строку атрибут charset (он же character set, кодировка документа). После этого атрибута мы увидим знак равенства. За ним и будет указана кодировка страницы.
Если атрибут charset не задан, его придется задать. Предварительно нужно проверить сайт при помощи сторонних сервисов. Один из них – Browserstack. Платформа платная, но, чтобы проверить кодировку, платить необязательно. Достаточно открыть сайт и выбрать пункт Get started free, создать аккаунт (можно просто залогиниться при помощи «Google-аккаунта»). После авторизации появится такое окно:
Выбираем интересующую нас операционную систему / устройство и вводим сайт, который нужно протестировать:
Если с кодировкой на сайте что-то не так, все ошибки будут представлены в результатах теста.
Для проверки и определения ошибок кодировки можно использовать не только Browserstack. Альтернатива – бесплатный сервис Validator. Он позволит идентифицировать кодировку сразу по нескольким данным, включая заголовки. Пример ошибки кодировки в результатах анализа Validator:
Также неплохие возможности для проверки технических ошибок сайта дает pr-cy.ru. Не забудьте выбрать пункт «Аудит страниц»:
Хорошие инструменты для проверки кодировки предоставляют сервисы NetPeak и SeoFrog. Последний удобен еще тем, что позволяет проверить кодировку сразу по всем страницам сайта, а не только по одной.
Кодировка и оптимизация
Даже если кодировка на сайте не совсем обычная или отличается на разных страницах, Google и «Яндекс» все равно проиндексируют такой сайт, но при условии, что контент уникален и не переспамлен ключами. Одна из самых неприятных ошибок здесь – несовместимость кодировки веб-ресурса с той, которая используется на сервере. Даже в таком случае Google, например, способен корректно идентифицировать ошибку. Сайт будет в выдаче, если соответствующие условия были соблюдены.
Ошибки кодировки сами по себе не влияют на оптимизацию сайта прямым образом. Они сказываются на отказах и времени, проведенном на сайте, а также на иных поведенческих показателях аудитории.
Если на вашем сайте возникают ошибки кодировки, и контент отображается некорректно, то посетитель ни при каких обстоятельствах не будет тратить свое время, пытаясь настроить правильную кодировку и, тем более, пытаться ее преобразовать в читаемую. Большинство посетителей просто не знают, как это сделать, но даже если знают, не будут тратить время и точно уйдут к конкурентам на тот сайт, где содержимое изначально отображается корректно.
Устранить проблемы кодировки сложно: мало поменять ее на одной или нескольких страницах. Обычно приходится исправлять ее также в мете (одноименных тегах), БД MySQL, файле htaccess и других системных файлах сайта.
Как исправить ошибки кодировки на своем сайте
Инструкция предназначена только для опытных пользователей и не является призывом к действию. Код и настройки я привожу исключительно в качестве примера. Если вы решитесь вносить изменения в БД и системные файлы, особенно в root, обязательно сделайте резервную копию всех данных сайта!
Документы / HTML-файлы
Если возникают проблемы с документами, необходимо удостовериться в том, что они имеют одинаковую кодировку, и в том, что она вообще задана. Для этого открываем HTML-файл при помощи любого редактора, который позволяет работать с кодом. Например, через Notepad++. Открываем проблемный документ и выполняем следующую последовательность действий:
Htaccess
«Кракозябра» может появляться даже в тех случаях, когда ошибки в документах уже исправлены. В таком случае нужно проверить файл htaccess. Открываем его при помощи редактора кода, затем, используя одновременное сочетание горячих клавиш Ctrl + F, открываем окно «Поиск по странице» и вводим уже знакомый нам атрибут Charset. Если атрибут найден, его необходимо исправить на тот, который является стандартным для вашего сайта. Если его нет вообще, добавляем атрибут AddDefaultCharset UTF-8 в любом месте в самом начале документа.
Как файл htaccess может улучшить ваш сайт: топ-10 лайфхаков для начинающего вебмастера
Теги типа meta
Именно мета-тег используется для установки требуемой кодировки. Кроме этого, в нем прописываются и другие мета-теги, которые задействованы для хранения информации, используемой браузерами. Прописываются теги типа meta в head-разделе. Выглядит следующим образом:
<!DOCTYPE HTML>
<html>
<head>
<title>Тег META</title>
<meta charset="utf-8">
</head>
<body>
<p>...</p>
</body>
</html>
Этот код приводится в качестве примера. Не исключено появление ошибок.
Базы данных
Если «кракозябры» при открытии страниц так и не исчезают, придется проверять MySQL. Нас интересуют значения, прописанные в таблицах баз данных. Чтобы устранить эту проблему, необходимо подключиться к серверу через mysql root. Для этого выполняем следующие шаги:
Так мы приведем кодировку БД к единому стандарту UTF-8.
Онлайн-декодеры
Онлайн-декодеры и другие инструменты с аналогичным функционалом позволяют преобразовать «кракозябру» в читаемый текст. Foxtools – приятный и удобный декодер, который работает в автоматическом режиме. У Foxtools вообще много полезных инструментов:
2cyr – еще более функциональный инструмент, который не только преобразует «кракозябры» в читаемый текст, но и выводит множество возможных вариантов. Бывает и такое, что все варианты «расшифровки» являются некорректными:
Итоги
Чтобы вовремя идентифицировать проблемы с кодировкой на своем сайте, используйте перечисленные выше инструменты. Не забывайте и об онлайн-декодерах: они эффективно расшифровывают нечитаемый текст в случаях, когда необходимо быстро преобразовать «кракозябру». Помните, что иероглифы на сайте недопустимы, и устранять такие ошибки нужно как можно скорее. В противном случае ухудшатся поведенческие факторы, и сайт может навсегда выпасть из поисковой выдачи.
кодировка — Выбор кодировки для MySQL
Вольный перевод вопроса What’s the difference between utf8_general_ci and utf8_unicode_ci.
Обе эти кодировки (utf8_general_ci
и utf8_unicode_ci
) работают с символами UTF-8, разница в сортировке строк и их сравнении.
Заметьте: начиная с MySQL версии 5.5.3 предпочтительнее использовать
utf8mb4
, а неutf8
. Они обе являются кодировками UTF-8, но более
стараяuft8
имеет специфические для MySQL ограничения символов UTF-8
выше 0xFFFD.
Сравнение по отдельным параметрам.
Точность
utf8mb4_unicode_ci
основана на стандарте Unicode по сортировке и
сравнению строк, который более точно сортирует строки в широком
диапазоне языков/алфавитов.utf8mb4_general_ci
не реализует все правила сортировки Unicode, что
зачастую влечёт нежелательный результат в некоторых ситуациях для
определённых языков/символов.
Производительность
utf8mb4_general_ci
быстрее в сравнении и сортировке, потому что она
содержит большое число оптимизаций.На современных серверах, это приращение скорости будет всегда, но незначительно. Оптимизации были задуманы во время, когда мощности серверов были значительно меньше сегодняшних.
utf8mb4_unicode_ci
, которое использует правила Unicode для сортировки
и сравнения, по-честному использует более сложные алгоритмы для
точной сортировки для широкого числа языков и при использовании
спецсимволов. Эти правила принимают во внимание специфические
соглашения для языка, не всегда сортировки идёт в соответствии с
«алфавитным» порядком.
В принципе, для группы т.н. «европейских» языков нет особой разницы между строгой сортировкой по Unicode и упрощенной сортировкой utf8mb4_general_ci
, но несколько различий:
Например, Unicode сортирует «ß» так же как и «ss», и «Œ» как «OE» так же как это делают люди, в то время как utf8mb4_general_ci
сортирует их как отдельные символы (предположительно как «s» и «e» соответственно).
Некоторые символы Unicode определены как незначимые, что означает, что они не должны влиять на порядок сортировки и сравнение должно переходить к следующему символу. И utf8mb4_unicode_ci
обрабатывает эти символы корректно.
Для группы неевропейских языков, таких как азиатские языки или языки с другим алфавитом существует гораздо больше различий между сортировкой Unicode и упрощённой сортировкой в utf8mb4_general_ci
. То, насколько подходит utf8mb4_general_ci
будет зависеть от конкретного языка. Для некоторых языков разница может быть сильно недостаточной.
Что же использовать?
Практически нет смысла предпочитать utf8mb4_general_ci
по соображениям производительности, потому что на современных процессорах разница не будет играть роль «бутылочного горлышка».
Какая-то разница в производительности может быть в каких чрезмерно специализированных ситуациях и если это ваш случай вы должны знать об этом.
Раньше некоторые специалисты рекомендовали использовать utf8mb4_general_ci
кроме тех случаев, когда необходима точная сортировка и это важнее проседания производительности. Сегодня больше обращают внимание на точную поддержку интернационализации, чем на незначительное проседание производительности.
И ещё я добавлю, что даже если ваше приложение должно поддерживать только английский язык — в нём может оказаться ситуация, когда в приложении будут вводиться имена людей и часто вводимые имена должны содержать символы, которые встречаются в других языках, поэтому так важно использовать корректные правила сортировки. Использование Unicode во всех местах, где это возможно, поможет вам разработать более качественные приложения.
В какой кодировке всё же лучше делать сайт?
По моим ощущениям люди часто не делают различий между понятиями «набор символов» и «кодировка», а зря. В большинстве кодировок разница, возможно, и невелика, но имея дело с Юникодом, нужно чётко понимать что есть что. Особенно больно по этим граблям ходят изучающие язык Python.
Набор символов (character set) — это некий набор значков, символов, каждому символу приписан номер.
Кодировка (encoding) — это способ представить (т. е. закодировать) последовательность из символов в виде последовательности байтов.
Рассмотрим пару примеров.
В набор символов Windows-1251 (http://en.wikipedia.org/wiki/Windows-1251) входят 256 различных символов со своими номерами. Символ «0» имеет номер 48, символ «R» — номер 82, символ «ы» — 251. Ещё раз — это пока абстрактный набор, просто список, который существует только в головах программистов.
Теперь рассмотрим кодировку Windows-1251. Эта кодировка позволяет представить символы из набора Windows-1251 в виде последовательности байтов. Кодировка устроена очень разумно — берём символ, берём его номер, записываем этот номер в виде байта! Символов 256, номера у них от 0 до 255, поэтому в байт точно влезет! Ура!
Набор символов ASCII содержит всего 128 символов. Кодировка ASCII тоже прямолинейна — берём и пишем в байт номер символа. Кстати, получается, что не всякую последовательность байтов можно считать текстом, закодированным с помощью ASCII: байтами со значением больше 127 никакие символы ASCII не кодируются.
Из-за того, что подобные кодировки записывали символы просто как их номера из набора, разница между этими понятиями была довольно размыта. С Юникодом дело обстоит иначе, здесь эта разница существенна.
Юникод — это набор символов (с номерами), в котором стараются собрать все-все алфавиты и даже больше.
Кодировок для этого набора придумали множество. Кодировка USC-2, например, устроена примерно как и Windows-1251: берём номер символа и записываем его как два байта. Увы, в два байта можно записать только значения от 0 до 65535, то есть USC-2 позволяет закодировать только часть знаков Юникода, да и то довольно накладным образом: любой символ, даже латинский, кодируются двумя байтами.
Кодировка UTF-8 хитрее. Первые 128 символов Юникода совпадают с символами ASCII. Эти символы UTF-8 кодирует как один байт, отсюда обратная совместимость: если мы используем только это подмножество символов, то нет разницы как их кодировать: последовательность байтов, полученных с помощью UTF-8 и ASCII будет совпадать. То есть если взять закодированный ASCII текст, и раскодировать его с помощью UTF-8, то в итоге получится тот же самый текст. Что UTF-8 делает с остальными символами, номера которых в Юникоде больше 128 — это уже отдельная увлекательная тема.
К сожалению, эти понятия иногда путаются даже в стандартах: в элементе в атрибуте «charset» указывается именно кодировка (encoding).
Хорошая статья на эту тему у Джоэла Сполски: http://www.joelonsoftware.com/articles/Unicode.html, очень её рекомендую всем, кто хочет раз и навсегда разобраться в этом предмете и больше никогда не путаться 😉
какую кодировку символов я должен выбрать для своего сайта? и как мне это решить?
почему важно объявить кодировку символов на странице HTML и как я могу решить, какой тип кодировки символов я должен выбрать для своего веб-сайта?
Раньше я просто использовал UTF-8 для всех html страниц. Но есть ли какая-то конкретная причина, почему я должен использовать его?
html
utf-8
Поделиться
Источник
ishanbakshi
01 декабря 2014 в 12:48
2 ответа
0
Это важно, потому что страница HTML может содержать разные языки. UTF-8-это многоязычная кодировка. Но если ваши страницы не содержат неанглийских символов, кодировка не важна, потому что все кодовые страницы имеют эти английские символы в одной и той же позиции.
Поделиться
cybersoft
01 декабря 2014 в 13:04
0
Да, вы должны использовать UTF-8:
он поддерживает все (т. е. Все языки и все символы)
он поддерживается всем (все языки программирования, фреймворки, базы данных, вы называете это)
это доминирующая кодировка в Интернете в наши дни: http://googleblog.blogspot.ca/2012/02/unicode-более-60-процентов-web.html
Любая другая кодировка напрашивается на неприятности.
Вы должны указать кодировку как UTF-8, потому что некоторые части программного обеспечения могут по умолчанию иметь значение ISO-8859-1, если не указано иное.
Поделиться
Karol S
01 декабря 2014 в 13:04
Похожие вопросы:
Какую кодировку символов столбца следует использовать для password_hash()?
Какую кодировку символов столбца следует использовать для хранения пароля, сгенерированного с помощью password_hash() из PHP, в базе данных MySQL?
Как я должен сделать опрос для своего сайта?
Я хочу сделать опрос для своего сайта. Опрос, который я хочу, должен выглядеть как опрос на http:/ / www.premierleague.com/en-gb.html.I я не уверен, должен ли я использовать PHP,Javascript или т….
TFS Merge конфликт: какую кодировку исходного файла я должен использовать?
Я делаю merge из ветви функций, и один из конфликтов заключается в том, что эти два файла имеют разные кодировки исходных файлов. Я получаю сообщение о разрешении, например: File encoding has…
для сайта, который является китайским языком, что я должен выбрать @font-face или sIFR для пользовательских шрифтов?
для сайта, который является китайским языком, что я должен выбрать @font-face или sIFR для пользовательских шрифтов? и какую кодировку я должен выбрать? Любое предложение типографики, лицензионных…
Какую кодировку использовать для экспорта в CSV?
Я разрабатываю приложение java, которое экспортирует данные в файлы CSV, предназначенные для открытия конечными пользователями в Excel. Мы только что заметили, что функция экспорта использует…
Какую кодировку я должен выбрать для транскрипции?
Мы с друзьями разрабатываем приложение для iphone и android. Нам нужно работать с транскрипцией слов. Какую кодировку (или даже специальный шрифт) мы должны выбрать, чтобы показать правильную…
Какую кодировку следует использовать для базовой аутентификации HTTP?
RFC2617 говорит кодировать имя пользователя и пароль в base64, но не говорит, какую кодировку символов использовать при создании октетов для ввода в алгоритм base64. Должен ли я предположить, что…
Какую кодировку я должен использовать для преобразования NSData в NSString и обратно, если строка не должна быть красивой?
Овации, мое приложение должно отправить содержимое объекта NSData в webserver в качестве параметра запроса GET. Он должен быть в состоянии получить те же самые данные обратно в более позднее время….
Как узнать, какую кодировку пользователь вводит в браузер?
Я прочитал статью Джоэла о наборах символов и поэтому следую его совету использовать UTF-8 на своей веб-странице и в своей базе данных. Чего я не могу понять, так это что делать с пользовательским…
Какую кодировку я должен использовать для кодирования символа temperautre в моей разработке iOS?
char symbol[] = {0xa1,0xe3}; //temperatue symbol code NSString *degree = [NSString stringWithCString:symbol encoding:NSASCIIStringEncoding]; //when degree displayed on screen,messy code. какую…
Кодировки MySQL, русификация MySQL | ISPserver
MySQL кодировки
Проблемы с кодировками MySQL могут возникать для версий 4.1 и выше, поскольку для них введена возможность задания разной кодировки для разных уровней иерархии базы данных (сервер, база данных, таблица, столбец) и отдельно для соединения сервера с клиентом. По умолчанию MySQL имеет кодировку latin1 на всех уровнях.
Кодировка, в которой хранятся данные на сервере MySQL, должна совпадать с кодировкой самих данных. Например, для русских символов используется кодировка cp1251. Если в таблице будут храниться записи русскими буквами, то и кодировка этой таблицы должна быть задана cp1251, иначе отображаться будут не русские символы, а знаки вопроса или другие знаки.
При создании баз данных сразу указывайте кодировку для хранения символов, поскольку в случае отсутствия явно заданной кодировки будет использовано значение по умолчанию (latin1). Например, создавайте базу данных командой:
create database `my-db` default charset cp1251;
Кодировка соединения сервера с клиентом устанавливает, в каком виде будут передаваться данные между ними. Например, если в скрипте на сайте используются русские символы, то при обращении сайта к базе данных MySQL должен правильно распознать эти символы, чтобы корректно выполнить скрипт. Если кодировка соединения использует значение по умолчанию latin1, то русские символы сервер баз данных не сможет правильно распознать, следовательно, скрипт выполнится с ошибкой.
Установите нужную вам кодировку соединения сразу после подключения к серверу MySQL запросом:
set names cp1251
Существует ряд клиентов, которые не могут установить нужную кодировку, имеют свою собственную. Для подобных случаев внесите в файл my.cnf в секцию [mysqld] строку:
set init_connect="set names cp1251" где cp1251 – это нужная вам кодировка.
В этом случае сервер выполнит команду «set names cp1251» сразу после соединения с клиентом и установит указанную в запросе кодировку.
Самые распространенные в России кодировки следующие:
utf8, cp866 (DOS), cp1251 (Windows), koi8r
Установка и использование на всех уровнях сервера баз данных одинаковой кодировки устраняет 90% проблем с кодировкой в MySQL.
Как русифицировать MySQL?
Внесите следующие изменения в файл my.cnf:
[client] default-character-set=cp1251 [mysqld] character-set-server=cp1251 collation-server=cp1251_general_ci init-connect = "set names cp1251"
Перезапустите MySQL сервер.
Выберите кодировку которая позволит прочитать ваш документ
Ввиду того, что текстовый редактор «Майкрософт Ворд» является самым популярным на рынке, именно форматы документов, которые присущи ему, можно чаще всего встретить в сети. Они могут отличаться лишь версиями (DOCX или DOC). Но даже с этими форматами программа может быть несовместима или же совместима не полностью.
Случаи некорректного отображения текста
Конечно, когда в программе наотрез отказываются открываться, казалось бы, родные форматы, это поправить очень сложно, а то и практически невозможно. Но, бывают случаи, когда они открываются, а их содержимое невозможно прочесть. Речь сейчас идет о тех случаях, когда вместо текста, кстати, с сохраненной структурой, вставлены какие-то закорючки, «перевести» которые невозможно.
Эти случаи чаще всего связаны лишь с одним – с неверной кодировкой текста. Точнее, конечно, будет сказать, что кодировка не неверная, а просто другая. Не воспринимающаяся программой. Интересно еще то, что общего стандарта для кодировки нет. То есть, она может разниться в зависимости от региона. Так, создав файл, например, в Азии, скорее всего, открыв его в России, вы не сможете его прочитать.
В этой статье речь пойдет непосредственно о том, как поменять кодировку в Word. Кстати, это пригодится не только лишь для исправления вышеописанных «неисправностей», но и, наоборот, для намеренного неправильного кодирования документа.
Определение
Перед рассказом о том, как поменять кодировку в Word, стоит дать определение этому понятию. Сейчас мы попробуем это сделать простым языком, чтобы даже далекий от этой тематики человек все понял.
Зайдем издалека. В «вордовском» файле содержится не текст, как многими принято считать, а лишь набор чисел. Именно они преобразовываются во всем понятные символы программой. Именно для этих целей применяется кодировка.
Кодировка – схема нумерации, числовое значение в которой соответствует конкретному символу. К слову, кодировка может в себя вмещать не только лишь цифровой набор, но и буквы, и специальные знаки. А ввиду того, что в каждом языке используются разные символы, то и кодировка в разных странах отличается.
Как поменять кодировку в Word. Способ первый
После того, как этому явлению было дано определение, можно переходить непосредственно к тому, как поменять кодировку в Word. Первый способ можно осуществить при открытии файла в программе.
В том случае, когда в открывшемся файле вы наблюдаете набор непонятных символов, это означает, что программа неверно определила кодировку текста и, соответственно, не способна его декодировать. Все, что нужно сделать для корректного отображения каждого символа, – это указать подходящую кодировку для отображения текста.
Говоря о том, как поменять кодировку в Word при открытии файла, вам необходимо сделать следующее:
- Нажать на вкладку «Файл» (в ранних версиях это кнопка «MS Office»).
- Перейти в категорию «Параметры».
- Нажать по пункту «Дополнительно».
- В открывшемся меню пролистать окно до пункта «Общие».
- Поставить отметку рядом с «Подтверждать преобразование формата файла при открытии».
- Нажать»ОК».
Итак, полдела сделано. Скоро вы узнаете, как поменять кодировку текста в Word. Теперь, когда вы будете открывать файлы в программе «Ворд», будет появляться окно. В нем вы сможете поменять кодировку открывающегося текста.
Выполните следующие действия:
- Откройте двойным кликом файл, который необходимо перекодировать.
- Кликните по пункту «Кодированный текст», что находится в разделе «Преобразование файла».
- В появившемся окне установите переключатель на пункт «Другая».
- В выпадающем списке, что расположен рядом, определите нужную кодировку.
- Нажмите «ОК».
Если вы выбрали верную кодировку, то после всего проделанного откроется документ с понятным для восприятия языком. В момент, когда вы выбираете кодировку, вы можете посмотреть, как будет выглядеть будущий файл, в окне «Образец». Кстати, если вы думаете, как поменять кодировку в Word на MAC, для этого нужно выбрать из выпадающего списка соответствующий пункт.
Способ второй: во время сохранения документа
Суть второго способа довольно проста: открыть файл с некорректной кодировкой и сохранить его в подходящей. Делается это следующим образом:
- Нажмите «Файл».
- Выберите «Сохранить как».
- В выпадающем списке, что находится в разделе «Тип файла», выберите «Обычный текст».
- Кликните по «Сохранить».
- В окне преобразования файла выберите предпочитаемую кодировку и нажмите «ОК».
Теперь вы знаете два способа, как можно поменять кодировку текста в Word. Надеемся, что эта статья помогла вам в решении вопроса.
Как правило, при совместной работе с текстовыми файлами нет необходимости вникать в технические аспекты хранения текста. Однако если необходимо поделиться файлом с человеком, который работает с текстами на других языках, скачать текстовый файл из Интернета или открыть его на компьютере с другой операционной системой, может потребоваться задать кодировку при его открытии или сохранении.
Когда вы открываете текстовый файл в Microsoft Word или другой программе (например, на компьютере, язык операционной системы на котором отличается от того, на котором написан текст в файле), кодировка помогает программе определить, в каком виде нужно вывести текст на экран, чтобы его можно было прочитать.
В этой статье
Общие сведения о кодировке текста
Информация, которая выводится на экран в виде текста, на самом деле хранится в текстовом файле в виде числовых значений. Компьютер преобразует эти значения в отображаемые знаки, используя кодировку.
Кодировка — это схема нумерации, согласно которой каждому текстовому символу в наборе соответствует определенное числовое значение. Кодировка может содержать буквы, цифры и другие символы. В различных языках часто используются разные наборы символов, поэтому многие из существующих кодировок предназначены для отображения наборов символов соответствующих языков.
Различные кодировки для разных алфавитов
Сведения о кодировке, сохраняемые с текстовым файлом, используются компьютером для вывода текста на экран. Например, в кодировке «Кириллица (Windows)» знаку «Й» соответствует числовое значение 201. Когда вы открываете файл, содержащий этот знак, на компьютере, на котором используется кодировка «Кириллица (Windows)», компьютер считывает число 201 и выводит на экран знак «Й».
Однако если тот же файл открыть на компьютере, на котором по умолчанию используется другая кодировка, на экран будет выведен знак, соответствующий числу 201 в этой кодировке. Например, если на компьютере используется кодировка «Западноевропейская (Windows)», знак «Й» из исходного текстового файла на основе кириллицы будет отображен как «É», поскольку именно этому знаку соответствует число 201 в данной кодировке.
Юникод: единая кодировка для разных алфавитов
Чтобы избежать проблем с кодированием и декодированием текстовых файлов, можно сохранять их в Юникоде. В состав этой кодировки входит большинство знаков из всех языков, которые обычно используются на современных компьютерах.
Так как Word работает на базе Юникода, все файлы в нем автоматически сохраняются в этой кодировке. Файлы в Юникоде можно открывать на любом компьютере с операционной системой на английском языке независимо от языка текста. Кроме того, на таком компьютере можно сохранять в Юникоде файлы, содержащие знаки, которых нет в западноевропейских алфавитах (например, греческие, кириллические, арабские или японские).
Выбор кодировки при открытии файла
Если в открытом файле текст искажен или выводится в виде вопросительных знаков либо квадратиков, возможно, Word неправильно определил кодировку. Вы можете указать кодировку, которую следует использовать для отображения (декодирования) текста.
Откройте вкладку Файл.
Выберите пункт Параметры.
Выберите пункт Дополнительно.
Перейдите к разделу Общие и установите флажок Подтверждать преобразование формата файла при открытии.
Примечание: Если установлен этот флажок, Word отображает диалоговое окно Преобразование файла при каждом открытии файла в формате, отличном от формата Word (то есть файла, который не имеет расширения DOC, DOT, DOCX, DOCM, DOTX или DOTM). Если вы часто работаете с такими файлами, но вам обычно не требуется выбирать кодировку, не забудьте отключить этот параметр, чтобы это диалоговое окно не выводилось.
Закройте, а затем снова откройте файл.
В диалоговом окне Преобразование файла выберите пункт Кодированный текст.
В диалоговом окне Преобразование файла установите переключатель Другая и выберите нужную кодировку из списка.
В области Образец можно просмотреть текст и проверить, правильно ли он отображается в выбранной кодировке.
Если почти весь текст выглядит одинаково (например, в виде квадратов или точек), возможно, на компьютере не установлен нужный шрифт. В таком случае можно установить дополнительные шрифты.
Чтобы установить дополнительные шрифты, сделайте следующее:
Нажмите кнопку Пуск и выберите пункт Панель управления.
Выполните одно из указанных ниже действий.
На панели управления выберите раздел Удаление программы.
В списке программ щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.
В Windows Vista
На панели управления выберите раздел Удаление программы.
В списке программ щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.
На панели управления щелкните элемент Установка и удаление программ.
В списке Установленные программы щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.
В группе Изменение установки Microsoft Office нажмите кнопку Добавить или удалить компоненты и затем нажмите кнопку Продолжить.
В разделе Параметры установки разверните элемент Общие средства Office, а затем — Многоязыковая поддержка.
Выберите нужный шрифт, щелкните стрелку рядом с ним и выберите пункт Запускать с моего компьютера.
Совет: При открытии текстового файла в той или иной кодировке в Word используются шрифты, определенные в диалоговом окне Параметры веб-документа. (Чтобы вызвать диалоговое окно Параметры веб-документа, нажмите кнопку Microsoft Office, затем щелкните Параметры Word и выберите категорию Дополнительно. В разделе Общие нажмите кнопку Параметры веб-документа.) С помощью параметров на вкладке Шрифты диалогового окна Параметры веб-документа можно настроить шрифт для каждой кодировки.
Выбор кодировки при сохранении файла
Если не выбрать кодировку при сохранении файла, будет использоваться Юникод. Как правило, рекомендуется применять Юникод, так как он поддерживает большинство символов большинства языков.
Если документ планируется открывать в программе, которая не поддерживает Юникод, вы можете выбрать нужную кодировку. Например, в операционной системе на английском языке можно создать документ на китайском (традиционное письмо) с использованием Юникода. Однако если такой документ будет открываться в программе, которая поддерживает китайский язык, но не поддерживает Юникод, файл можно сохранить в кодировке «Китайская традиционная (Big5)». В результате текст будет отображаться правильно при открытии документа в программе, поддерживающей китайский язык (традиционное письмо).
Примечание: Так как Юникод — это наиболее полный стандарт, при сохранении текста в других кодировках некоторые знаки могут не отображаться. Предположим, например, что документ в Юникоде содержит текст на иврите и языке с кириллицей. Если сохранить файл в кодировке «Кириллица (Windows)», текст на иврите не отобразится, а если сохранить его в кодировке «Иврит (Windows)», то не будет отображаться кириллический текст.
Если выбрать стандарт кодировки, который не поддерживает некоторые символы в файле, Word пометит их красным. Вы можете просмотреть текст в выбранной кодировке перед сохранением файла.
При сохранении файла в виде кодированного текста из него удаляется текст, для которого выбран шрифт Symbol, а также коды полей.
Выбор кодировки
Откройте вкладку Файл.
Нажмите кнопку Сохранить как.
Чтобы сохранить файл в другой папке, найдите и откройте ее.
В поле Имя файла введите имя нового файла.
В поле Тип файла выберите Обычный текст.
Нажмите кнопку Сохранить.
Если появится диалоговое окно Microsoft Office Word — проверка совместимости, нажмите кнопку Продолжить.
В диалоговом окне Преобразование файла выберите подходящую кодировку.
Чтобы использовать стандартную кодировку, выберите параметр Windows (по умолчанию).
Чтобы использовать кодировку MS-DOS, выберите параметр MS-DOS.
Чтобы задать другую кодировку, установите переключатель Другая и выберите нужный пункт в списке. В области Образец можно просмотреть текст и проверить, правильно ли он отображается в выбранной кодировке.
Примечание: Чтобы увеличить область отображения документа, можно изменить размер диалогового окна Преобразование файла.
Если появилось сообщение «Текст, выделенный красным, невозможно правильно сохранить в выбранной кодировке», можно выбрать другую кодировку или установить флажок Разрешить подстановку знаков.
Если разрешена подстановка знаков, знаки, которые невозможно отобразить, будут заменены ближайшими эквивалентными символами в выбранной кодировке. Например, многоточие заменяется тремя точками, а угловые кавычки — прямыми.
Если в выбранной кодировке нет эквивалентных знаков для символов, выделенных красным цветом, они будут сохранены как внеконтекстные (например, в виде вопросительных знаков).
Если документ будет открываться в программе, в которой текст не переносится с одной строки на другую, вы можете включить в нем жесткие разрывы строк. Для этого установите флажок Вставлять разрывы строк и укажите нужное обозначение разрыва (возврат каретки (CR), перевод строки (LF) или оба значения) в поле Завершать строки.
Поиск кодировок, доступных в Word
Word распознает несколько кодировок и поддерживает кодировки, которые входят в состав системного программного обеспечения.
Ниже приведен список письменностей и связанных с ними кодировок (кодовых страниц).
Юникод (UCS-2 с прямым и обратным порядком байтов, UTF-8, UTF-7)
Стандартный шрифт для стиля «Обычный» локализованной версии Word
Windows 1256, ASMO 708
Китайская (упрощенное письмо)
GB2312, GBK, EUC-CN, ISO-2022-CN, HZ
Китайская (традиционное письмо)
BIG5, EUC-TW, ISO-2022-TW
Windows 1251, KOI8-R, KOI8-RU, ISO8859-5, DOS 866
Английская, западноевропейская и другие, основанные на латинице
Гарантия
до 3х лет
Ремонт
за 15 минут
Стоимость
от 500р.
Выезд мастера
за 300р.
Весь персонал
квалифицирован
Иногда открыв файл, созданный при помощи Microsoft Word и присланный нам по почте, скайпу или другим способом, мы вместо привычных русских слов видим какие-то странные иероглифы. Мы недоумеваем, что же такое нам прислали, связываемся с отправителем, а он говорит, что у него все нормально открывается. Суть данной проблемы скорее всего состоит в том, что файл был сохранен не в той кодировке, что стоит по умолчанию в вашей программе. Чтобы исправить ситуацию необходимо всего лишь поменять кодировку файла и сейчас мы узнаем, как это сделать.
В данном примере будет использоваться Microsoft Word 2010 но принцип решения нашей задачи будет таким же и во всех остальных версиях программы. Итак, открываем наш «проблемный» документ, переходим в меню Файл и нажимаем на пункте Параметры.
Далее переходим во вкладку Дополнительно и в разделе Общие ставим галочку напротив пункта Подтверждать преобразование формата файла при открытии.
Нажимаем Ок и закрываем наш документ. Затем снова открываем его и перед нами должно появится окошко Преобразование файла, в нем нам нужно выбрать пункт Кодированный текст.
После этого появится другое окно, в котором нам нужно будет выбрать кодировку для своего файла. Ставим галочку на пункте Другая и в поле выбора пробуем методом перебора различные кодировки, до тех пор пока не получим результат. В окне Результат вы можете увидеть, как меняется текст в зависимости от выбранной вами кодировки.
Если вышеописанный метод не помог исправить проблему, то возможно она кроется не в неправильной кодировке, а в отсутствии на вашем компьютере шрифта, с использованием которого создавался данный документ. В таком случае вам придется уточнить у отправителя документа название шрифта и установить нужный шрифт на свой компьютер.
В обслуживание компьютеров юридических лиц входит: посещение специалиста в ваш офис, тест оборудования, монтаж оборудования, регулировка ОС оборудования и многое другое.
А если возникла повреждение нетбука, мы занимаемся ремонтом ноутбуков.
Остались вопросы? – Мы БЕСПЛАТНО ответим на них в ВК.
Как поменять кодировку текста в Word
Набор символов, которые мы видим на экране при открытии документа, называется кодировкой. Когда она выставлена неправильно, вместо понятных и привычных букв и цифр вы увидите бессвязные символы. Эта проблема часто возникала на заре развития технологий, но сейчас текстовые процессоры умеют сами автоматически выбирать подходящие комплекты. Свою роль сыграло появление и развитие utf-8, так называемого Юникода, в состав которого входит множество самых разных символов, в том числе русских. Документы в такой кодировке не нуждаются в смене и настройке, так как показывают текст правильно по умолчанию.
Современные текстовые редакторы определяют кодировку при открытии документа
С другой стороны, такая ситуация всё же иногда случается. И получить нечитаемый документ очень досадно, особенно если он важный и нужный. Как раз для таких случаев в Microsoft Word есть возможность указать для текста кодировку. Это вернёт его в читаемый вид.
Принудительная смена
Если вы получили из какого-то источника текстовый файл, но не можете прочитать его содержимое, то нужна операция ручной смены кодировки. Для этого зайдите в раздел «Сведения» во вкладке «Файл». Тут собраны глобальные настройки распознавания и отображения, и если вы будете изменять их в открытом документе, то для него они станут индивидуальными, а для остальных — не изменятся. Воспользуемся этим. В разделе «Дополнительно» появившегося окна находим заголовок «Общие» и ставим галочку «Подтверждать преобразование файлов при открытии». Подтвердите изменения и закройте Word. Теперь откройте документ снова, как бы применяя настройки, и перед вами появится окно преобразования файла. В нём будет список возможных форматов, среди которых находим «Кодированный текст», и получим следующий диалог.
В этом новом окне будет три переключателя. Первый, по умолчанию, — это CP-1251, кодировка Windows. Второй — MS-DOS. Нам нужен третий пункт — ручной выбор, справа от него перечислены разнообразные наборы символов. Но, как правило, пользователь не знает, какими символами был набран текст предыдущим автором, поэтому в нижней части этого окна есть поле под названием «Образец», в котором фрагмент из текста будет в реальном времени отображаться при выборе того или иного комплекта символов. Это очень удобно, потому что не нужно каждый раз закрывать и отрывать документ снова, чтобы подобрать нужную.
Перебирая варианты по одному и глядя на текст в поле образцов, выберите ту кодировку, при которой символы будут русскими. Но обратите внимание, что это ещё ничего не значит, — внимательно смотрите, чтобы они складывались в осмысленные слова. Дело в том, что для русского языка есть не одна кодировка, и текст в одной из них не будет отображаться корректно в другой. Так что будьте внимательны.
Нужно сказать, что с файлами, сделанными на современных текстовых процессорах, крайне редко возникают подобные проблемы. Однако есть ещё и такой бич современного информационного общества, как несовместимость форматов. Дело в том, что существует целый ряд текстовых редакторов, и каждым кто-то пользуется. Возможно, для кого-то не нужна функциональность Ворда, кто-то не считает нужным за него платить и т. п. Причин может быть множество.
Если при сохранении документа автор выбрал формат, совместимый в MS Word, то проблем возникнуть не должно. Но так бывает нечасто. Например, если текст сохранён с расширением .rtf, то диалог выбора кодировки отобразится перед вами сразу же при открытии текста. А вот форматы другого популярного текстового процессора OpenOffice Ворд даже не откроет, поэтому, если им пользуетесь, не забывайте выбирать пункт «Сохранить как», когда отправляете файл пользователю Office.
Сохранение с указанием кодировки
У пользователя может возникнуть ситуация, когда он специально указывает определённую кодировку. Например, такое требование ему предъявляет получатель документа. В этом случае нужно будет сохранить документ как обычный текст через меню «Файл». Смысл в том, что для заданных форматов в Ворде есть привязанные глобальными системными настройками кодировки, а для «Обычного текста» такой связи не установлено. Поэтому Ворд предложит самостоятельно выбрать для него кодировку, показав уже знакомое нам окно преобразования документа. Выбирайте для него нужную вам кодировку, сохраняйте, и можно отправлять или передавать этот документ. Как вы понимаете, конечному получателю нужно будет сменить в своём текстовом редакторе кодировку на такую же, чтобы прочитать ваш текст.
Заключение
Вопрос смены кодировки в Вордовских документах перед рядовыми пользователями встаёт не так уж часто. Как правило, текстовый процессор может сам автоматически определить требуемый для корректного отображения набор символов и показать текст в читаемом виде. Но из любого правила есть исключения, так что нужно и полезно уметь сделать это самому, благо, реализован процесс в Word достаточно просто.
То, что мы рассмотрели, действительно и для других программ из пакета Office. В них также могут возникнуть проблемы из-за, скажем, несовместимости форматов сохранённых файлов. Здесь пользователю придётся выполнить всё те же действия, так что эта статья может помочь не только работающим в Ворде. Унификация правил настройки для всех программ офисного пакета Microsoft помогает не запутаться в них при работе с любым видом документов, будь то тексты, таблицы или презентации.
Напоследок нужно сказать, что не всегда стоит обвинять кодировку. Возможно, всё гораздо проще. Дело в том, что многие пользователи в погоне за «красивостями» забывают о стандартизации. Если такой автор выберет установленный у него шрифт, наберёт с его помощью документ и сохранит, у него текст будет отображаться корректно. Но когда этот документ попадёт к человеку, у которого такой шрифт не установлен, то на экране окажется нечитаемый набор символов. Это очень похоже на «слетевшую» кодировку, так что легко ошибиться. Поэтому перед тем как пытаться раскодировать текст в Word, сначала попробуйте просто сменить шрифт.
Выбор и применение кодировки символов
Выбор и применение кодировки символов
Целевая аудитория:
Кодировщики HTML (использующие редакторы или сценарии), разработчики сценариев (PHP, JSP и т. Д.), Кодировщики CSS, менеджеры веб-проектов и все, кто плохо знаком с кодировками символов и нуждается в введении в то, как выбирать и применять кодировки символов.
Какую кодировку символов я должен использовать для своего контента и как применить ее к моему контенту?
Контент состоит из последовательности символов.Символы представляют буквы алфавита, знаки препинания и т. Д. Но содержимое хранится в компьютере как последовательность байтов, которые являются числовыми значениями. Иногда для представления одного символа используется более одного байта. Как и коды, используемые в шпионаже, способ преобразования последовательности байтов в символы зависит от того, какой ключ использовался для кодирования текста. В этом контексте этот ключ называется кодировкой символов .
Эта статья предлагает простые советы о том, какую кодировку символов использовать для вашего контента и как ее применять, т. Е.как на самом деле создать документ в этой кодировке.
Если вам нужно лучше понять, что такое символы и кодировки символов, см. Статью Кодировки символов для начинающих .
Выберите UTF-8 для всего содержимого и подумайте о преобразовании любого содержимого из устаревших кодировок в UTF-8.
Если вы действительно не можете использовать кодировку Unicode, убедитесь, что существует широкая поддержка браузером для выбранной вами кодировки страницы, и что эта кодировка не входит в список кодировок, которых следует избегать в соответствии с последними спецификациями.
Проверьте, повлияют ли на ваш выбор настройки HTTP-сервера.
Помимо объявления кодировки документа внутри документа и / или на сервере, вам необходимо сохранить текст в этой кодировке, чтобы применить его к вашему контенту.
Разработчикам также необходимо убедиться, что различные части системы могут взаимодействовать друг с другом.
Применение кодировки к вашему контенту
Авторы контента должны объявить кодировку символов своих страниц, используя один из методов, описанных в Объявление кодировок символов в HTML .
Однако важно понимать, что простое объявление кодировки внутри документа или на сервере фактически не изменит байты; вам нужно сохранить текст в этой кодировке , чтобы применить его к вашему контенту. (Объявление просто помогает браузеру интерпретировать последовательности байтов, в которых хранится текст.)
При необходимости настройте UTF-8 по умолчанию для новых документов в редакторе. На рисунке ниже показано, как это сделать в настройках редактора, такого как Dreamweaver.
Для получения информации о «Форме нормализации Unicode» см. Нормализация в HTML и CSS . Для получения информации о «Подпись Unicode (BOM)» см. Метка порядка байтов (BOM) в HTML .
Вам также может потребоваться проверить, что ваш сервер обслуживает документы с правильными декларациями HTTP, поскольку в противном случае он переопределит информацию в документе (см. Ниже).
Разработчикам также необходимо убедиться, что различные части системы могут взаимодействовать друг с другом.Веб-страницы должны иметь возможность беспрепятственно взаимодействовать с серверными скриптами, базами данных и т. Д. Все они, конечно, лучше всего работают и с UTF-8. Разработчики могут найти подробный набор вещей, которые следует учитывать, в статье Переход на Unicode .
Зачем использовать UTF-8?
HTML-страница может быть только в одной кодировке. Вы не можете кодировать разные части документа в разных кодировках.
Кодировка на основе Unicode, такая как UTF-8, может поддерживать множество языков и может содержать страницы и формы на любом сочетании этих языков.Его использование также
устраняет необходимость в логике на стороне сервера для индивидуального определения кодировки символов для каждой обслуживаемой страницы или каждой входящей отправки формы.
Это значительно упрощает работу с многоязычным сайтом или приложением.
Кодировка Unicode также позволяет смешивать намного больше языков на одной странице, чем любой другой выбор кодировки.
Поддержка данной кодировки, даже кодировки Unicode, не обязательно означает, что пользовательский агент будет правильно отображать текст.Многочисленные скрипты, такие как арабский и индийский, требуют дополнительных правил для преобразования последовательности символов в памяти в соответствующую последовательность глифов шрифта для отображения.
В наши дни барьеры для использования Unicode очень низки. Фактически, в январе 2012 года Google сообщил, что более 60% Интернета в их выборке из нескольких миллиардов страниц теперь используют UTF-8. Добавьте к этому цифру для веб-страниц только с ASCII (поскольку ASCII является подмножеством UTF-8), и эта цифра возрастет примерно до 80%.
Существует три различных кодировки символов Unicode: UTF-8, UTF-16 и UTF-32.Из этих трех только UTF-8 следует использовать для веб-содержимого. Спецификация HTML5 гласит: «Авторам рекомендуется использовать UTF-8. Средства проверки соответствия могут рекомендовать авторам не использовать устаревшие кодировки. Инструменты разработки должны по умолчанию использовать UTF-8 для вновь создаваемых документов».
Обратите внимание, в частности, что все символы ASCII в UTF-8 используют в точности те же байты, что и кодировка ASCII, что часто способствует совместимости и обратной совместимости.
Принимая во внимание HTTP-заголовок
Любое объявление кодировки символов в заголовке HTTP переопределит объявления внутри страницы.Если заголовок HTTP объявляет кодировку, отличную от той, которую вы хотите использовать для своего контента, это вызовет проблему, если вы не сможете изменить настройки сервера.
У вас может не быть контроля над объявлениями, которые идут с заголовком HTTP, и вам, возможно, придется обратиться за помощью к людям, которые управляют сервером. С другой стороны, иногда есть способы исправить что-то на сервере, если у вас ограниченный доступ к файлам настройки сервера или если вы создаете страницы с помощью языков сценариев.Например, см. Установка параметра кодировки HTTP для получения дополнительной информации о том, как изменить информацию о кодировке либо локально для набора файлов на сервере, либо для контента, созданного с использованием языка сценариев.
Обычно перед этим необходимо проверить, действительно ли заголовок HTTP объявляет кодировку символов. Вы можете использовать средство проверки интернационализации W3C, чтобы узнать, какая кодировка символов, если таковая имеется, указана в заголовке HTTP. В качестве альтернативы, статья Проверка заголовков HTTP указывает на некоторые другие инструменты для проверки информации о кодировке, передаваемой сервером.
Информация в этом разделе относится к вещам, о которых вам обычно не нужно знать, но которые включены сюда для полноты.
Что делать, если я не могу использовать UTF-8?
Если вы действительно не можете избежать использования кодировки символов, отличной от UTF-8, вам нужно будет выбрать из ограниченного набора имен кодировки, чтобы обеспечить максимальную совместимость и максимально долгий срок читабельности вашего контента, а также минимизировать уязвимости безопасности.
До недавнего времени реестр IANA был местом, где можно было найти имена для кодировок.Реестр IANA обычно включает несколько имен для одной и той же кодировки. В этом случае вы должны использовать имя, обозначенное как
«предпочтительный».
Новая спецификация Encoding теперь предоставляет список, который был протестирован на реальных реализациях браузеров. Вы можете найти список в таблице в разделе «Кодировки». Лучше всего использовать имена из левого столбца этой таблицы.
Обратите внимание, однако, на , что наличие имени в любом из этих источников не обязательно означает, что использовать эту кодировку можно.В следующем разделе описаны кодировки, которых следует избегать.
Избегайте этих кодировок
Спецификация HTML5 называет ряд кодировок, которых следует избегать.
Документы не должны использовать JIS_C6226-1983 , JIS_X0212-1990 , HZ-GB-2312 , JOHAB (кодовая страница Windows 1361), кодировки на основе ISO-2022 или кодировки на основе EBCDIC . Это связано с тем, что они позволяют кодовым точкам ASCII представлять символы, отличные от ASCII, что представляет собой угрозу безопасности.
Документы также не должны использовать кодировки CESU-8 , UTF-7 , BOCU-1 или SCSU , поскольку они никогда не предназначались для веб-содержимого, а спецификация HTML5 запрещает браузерам их распознавать.
Спецификация также настоятельно не рекомендует использовать UTF-16 , а использование UTF-32 «особенно не рекомендуется».
Также следует избегать других кодировок символов, перечисленных в спецификации Encoding .К ним относятся кодировки Big5 и EUC-JP , у которых есть проблемы с совместимостью. ISO-8859-8 (кодировка на иврите для визуально упорядоченного текста) также следует избегать в пользу кодировки, которая работает с логически упорядоченным текстом (например, UTF-8 или в противном случае ISO-8859-8-i).
Кодировка , заменяющая кодировку , указанная в спецификации Encoding , на самом деле не является кодировкой; это резервный вариант, который отображает каждый октет в кодовую точку Unicode U + FFFD REPLACEMENT CHARACTER.Очевидно, что передавать данные в такой кодировке бесполезно.
Определяемая пользователем кодировка x — это однобайтовая кодировка, нижняя половина которой — ASCII, а верхняя половина отображается в область частного использования Unicode (PUA). Как и PUA в целом, лучше избегать использования этой кодировки в общедоступном Интернете, поскольку она наносит ущерб совместимости и долгосрочному использованию.
Кодирование
| PyCharm
Для правильного отображения и редактирования файлов PyCharm необходимо знать, какую кодировку использовать.Как правило, файлы исходного кода в основном находятся в UTF-8. Это рекомендуемая кодировка, если у вас нет других требований.
Чтобы определить кодировку файла, PyCharm использует следующие шаги:
Если присутствует метка порядка байтов (BOM), PyCharm будет использовать соответствующую кодировку Unicode независимо от всех других настроек. Для получения дополнительной информации см. Метка порядка байтов.
Если в файле явно указана кодировка, PyCharm будет использовать указанную кодировку.Например, это может относиться к файлам XML или HTML. Явное объявление также отменяет все остальные настройки, но вы можете изменить его в редакторе.
Если в файле нет спецификации и явного объявления кодировки, PyCharm будет использовать кодировку, настроенную для файла или каталога в настройках кодировки файла. Если кодировка не настроена для файла или каталога, PyCharm будет использовать кодировку родительского каталога. Если кодировка родительского каталога также не настроена, PyCharm вернется к кодировке проекта, а при отсутствии проекта — к глобальной кодировке.
Изменить кодировку файла, который содержит явную кодировку
Откройте нужный файл в редакторе.
Изменить явную информацию о кодировке. Используйте выделение ошибок, чтобы распознать неправильную кодировку, и нажмите Ctrl + Пробел , чтобы отобразить список доступных кодировок:
Измените кодировку, используемую для просмотра файла
Если PyCharm отображает символы в файле неправильно, вероятно, это невозможно. t определить кодировку файла.В этом случае вам необходимо указать правильную кодировку для использования при просмотре и редактировании этого файла.
Открыв файл в редакторе, выберите либо в главном меню, либо щелкните виджет «Кодировка файла» в строке состояния и выберите правильную кодировку файла.
Список кодировок достаточно большой. Вы можете использовать быстрый поиск, чтобы быстро найти правильную кодировку: начните вводить текст, когда всплывающее окно открыто.
Кодировки, отмеченные значком или могут изменить содержимое файла.В этом случае PyCharm открывает диалоговое окно, в котором вы можете выбрать, что делать с файлом:
Reload: загрузить файл в редактор с диска и применить изменения кодировки только к редактору. Вы увидите изменения содержимого, связанные с выбранной кодировкой, но сам файл не изменится.
Конвертировать: перезаписать файл с выбранной кодировкой.
Это добавит ассоциацию для файла в настройки кодировки файла.PyCharm будет использовать указанную кодировку для просмотра и редактирования этого файла.
Настройка параметров кодировки файлов
В диалоговом окне «Настройки / Предпочтения» Ctrl + Alt + S выберите.
PyCharm использует эти параметры для просмотра и редактирования файлов, для которых не удалось определить кодировку, а также использует указанные кодировки для новых файлов.
Выбрать кодировку вывода консоли
По умолчанию PyCharm использует системную кодировку для просмотра вывода консоли.
В диалоговом окне «Настройки / Предпочтения» Ctrl + Alt + S выберите.
Выберите кодировку по умолчанию из списка Кодировка по умолчанию.
Нажмите ОК, чтобы применить изменения.
Последнее изменение: 12 октября 2021 г.
404 | Микро Фокус
Профессиональные услуги
Сформируйте свою стратегию и преобразуйте гибридную ИТ-среду.
Помогите вам внедрить безопасность в цепочку создания стоимости ИТ и наладить сотрудничество между ИТ-подразделениями, приложениями и службами безопасности.
Помогите вам быстрее реагировать и получить конкурентное преимущество благодаря гибкости предприятия.
Ускорьте получение результатов гибридного облака с помощью услуг по консультированию, трансформации и внедрению.
Службы управления приложениями, которые позволяют поручить управление решениями экспертам, разбирающимся в вашей среде.
Услуги стратегического консалтинга для разработки вашей программы цифровой трансформации.
Полнофункциональное моделирование сценариев использования с предварительно созданными интеграциями в портфеле программного обеспечения Micro Focus, демонстрирующее реальный сценарий использования
Услуги экспертной аналитики безопасности, которые помогут вам быстро спроектировать, развернуть и проверить реализацию технологии безопасности Micro Focus.
Служба интеграции и управления услугами, которая оптимизирует доставку, гарантии и управление в условиях нескольких поставщиков.
Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.
Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.
Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.
Мобильные услуги, которые обеспечивают производительность и ускоряют вывод на рынок без ущерба для качества.
Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.
Комплексные услуги по работе с большими данными для продвижения вашего предприятия.
Кодировка HTML
Чтобы правильно отображать HTML-страницу, веб-браузер должен знать
какой набор символов использовать.
Из ASCII в UTF-8
ASCII был первым стандартом кодировки символов.В ASCII определены 128 различных символов, которые можно использовать в Интернете: цифры (0-9), английские буквы (A-Z) и некоторые специальные
персонажи нравятся! $ + — () @ <>.
ISO-8859-1 был набором символов по умолчанию для HTML 4. Этот набор символов
поддерживаются 256 различных кодов символов. HTML 4 также поддерживает UTF-8.
ANSI (Windows-1252) был исходным набором символов Windows. ANSI идентичен
согласно ISO-8859-1, за исключением того, что ANSI содержит 32 дополнительных символа.
Спецификация HTML5 поощряет веб-разработчиков использовать символ UTF-8.
набор, который охватывает почти все
персонажи и символы в мире!
Атрибут кодировки HTML
Для правильного отображения HTML-страницы веб-браузер должен знать набор символов, используемый на странице.
Это указано в теге
:
Различия между наборами символов
В следующей таблице показаны различия между наборами символов, описанными выше:
Число | ASCII | ANSI | 8859 | UTF-8 | Описание | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
32 | пространство | ||||||||||||||||||||
33 | ! | ! | ! | ! | восклицательный знак | ||||||||||||||||
34 | « | » | « | » | кавычка | ||||||||||||||||
35 | # | # | # | # | # номер | 36 | $ | $ | $ | $ | знак доллара | ||||||||||
37 | % | % | % | % | знак процента | и | и | амперсанд | |||||||||||||
39 | ‘ | ‘ | ‘ | ‘ | апостроф | ||||||||||||||||
40 | ( | ||||||||||||||||||||
41 | ) | ) | ) | ) | правая скобка | ||||||||||||||||
42 | * | * | * | звездочка | |||||||||||||||||
43 | + | + | + | + | плюс знак | ||||||||||||||||
, | , | , | , | , | запятая | ||||||||||||||||
45 | — | — | — | — | дефис-минус | ||||||||||||||||
46 | . | . | . | . | до упора | ||||||||||||||||
47 | / | / | / | / | solidus | ||||||||||||||||
48 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | цифра один | |||||||||||||
50 | 2 | 2 | 2 | 2 | 51 цифра два | 3 | три цифры | ||||||||||||||
52 | 4 | 4 | 4 | 4 | четыре цифры | ||||||||||||||||
53 | 5 | 5 | 5 | ||||||||||||||||||
54 | 6 | 6 | 6 | 6 | цифра шесть | ||||||||||||||||
55 | 7 | 7 | 7 | цифра семь | |||||||||||||||||
56 | 8 | 8 | 8 | 8 | цифра восемь | ||||||||||||||||
57 | 9 | 9 | |||||||||||||||||||
58 | : | : | : | : | двоеточие | ||||||||||||||||
59 | ; | ; | ; | ; | точка с запятой | ||||||||||||||||
60 | < | < | < | < | знак «меньше» | ||||||||||||||||
61 | = | = | = | = | = | = | = | = | = | = | = | = | = | = | 62 | > | > | > | > | знак больше | |
63 | ? | ? | ? | ? | знак вопроса | ||||||||||||||||
64 | @ | @ | @ | @ | коммерческий на | ||||||||||||||||
65 | A | A | A | ||||||||||||||||||
66 | B | B | B | B | Заглавная латинская буква B | ||||||||||||||||
67 | C | C | C | C | D | D | D | D | Заглавная латинская буква D | ||||||||||||
69 | E | E | E | E | Заглавная латинская буква E | F | F | Заглавная латинская буква F | |||||||||||||
71 | G | G | G | G | |||||||||||||||||
72 | H | H | H | H | Заглавная латинская буква H | ||||||||||||||||
73 | I | I | I | заглавная буква | I | ||||||||||||||||
74 | J | J | J | J | Заглавная латинская буква J | ||||||||||||||||
75 | K | K | K | K | 76 | L | L | L | L | Заглавная латинская буква L | |||||||||||
77 | M | M | M | M | латинская заглавная буква M | N | N | N | Заглавная латинская буква N | ||||||||||||
79 | O | O | O | O 90 355 | Заглавная латинская буква O | ||||||||||||||||
80 | P | P | P | P | Заглавная латинская буква P | ||||||||||||||||
81 | Q | Q | Q 9035 заглавная Q 9035 буква Q | ||||||||||||||||||
82 | R | R | R | R | Заглавная латинская буква R | ||||||||||||||||
83 | S | S | S | S заглавная | |||||||||||||||||
84 | T | T | T | T | Заглавная латинская буква T | ||||||||||||||||
85 | U | U | U | U | V | V | V | V | Заглавная латинская буква V | ||||||||||||
87 | W | W | W | Заглавная латинская буква W | |||||||||||||||||
88 | X | X | X | X | Заглавная латинская буква X | ||||||||||||||||
89 | Y | Y | |||||||||||||||||||
90 | Z | Z | Z | Z | Заглавная латинская буква Z | ||||||||||||||||
91 | [ | [ | [ | [ | [ | левая квадратная скобка] | |||||||||||||||
92 | \ | \ | \ | \ | обратный солидус | ||||||||||||||||
93 | ] | ] | ] | ] | правый квадрат | ^ | ^ | ^ | акцент с циркумфлексом | ||||||||||||
95 | _ | _ | _ | _ 903 55 | нижняя линия | ||||||||||||||||
96 | ` | ` | ` | ` | серьезный акцент | ||||||||||||||||
97 | a | a | a | a | |||||||||||||||||
98 | b | b | b | b | Строчная латинская буква b | ||||||||||||||||
99 | c | c | c | c | латинская строчная буква c | d | d | d | d | Строчная латинская буква d | |||||||||||
101 | e | e | e | e | Строчная латинская буква e | 102 | 102 | f | f | Строчная латинская буква f | |||||||||||
103 | g | g | g | g | Строчная латинская le tter g | ||||||||||||||||
104 | h | h | h | h | Строчная латинская буква h | ||||||||||||||||
105 | i | i | i | i Latin | |||||||||||||||||
106 | j | j | j | j | Строчная латинская буква j | ||||||||||||||||
107 | k | k | k | k | латинская строчная | l | l | l | l | Строчная латинская буква l | |||||||||||
109 | m | m | m | m | Строчная латинская буква m | 110355 | n | n | Строчная латинская буква n | ||||||||||||
111 | o | o | o | o | Строчная латинская буква le tter o | ||||||||||||||||
112 | p | p | p | p | Строчная латинская буква p | ||||||||||||||||
113 | q | q | q | q | q | q латиница | |||||||||||||||
114 | r | r | r | r | Строчная латинская буква r | ||||||||||||||||
115 | s | s | s | s | t | t | t | t | Строчная латинская буква t | ||||||||||||
117 | u | u | u | u | Латинская строчная буква | 118 | v | v | v | Строчная латинская буква v | |||||||||||
119 | w | w | w | w | Строчная латинская буква le tter w | ||||||||||||||||
120 | x | x | x | x | Строчная латинская буква x | ||||||||||||||||
121 | y | y | y | y | y | y | |||||||||||||||
122 | z | z | z | z | Строчная латинская буква z | ||||||||||||||||
123 | { | { | { | { | левый фигурный кронштейн | | | | | | | | вертикальная линия | ||||||||||||
125 | } | } | } | } | правая фигурная скоба | ||||||||||||||||
126 | ~ | ~ | ~ | ~ | 127 | DEL | |||||||||||||||
128 | € | евро знак | |||||||||||||||||||
129 | |||||||||||||||||||||
130 | ‚ | одинарная кавычка low-9 | |||||||||||||||||||
131 | ƒ | „ | двойные низкие 9 кавычки | ||||||||||||||||||
133 | … | двойной эллипс | |||||||||||||||||||
134 | † | 9035 кинжал | |||||||||||||||||||
136 | ˆ | модификатор буквы с циркумфлексом с акцентом | |||||||||||||||||||
137 | ‰ | Заглавная латинская буква S с кароном | |||||||||||||||||||
139 | ‹ | одинарный левый угол кавычки | |||||||||||||||||||
140 | латиница c апитальная лигатура OE | ||||||||||||||||||||
141 | НЕ ИСПОЛЬЗУЕТСЯ | ||||||||||||||||||||
142 | Ž | заглавная заглавная буква | НЕ ИСПОЛЬЗУЕТСЯ | ||||||||||||||||||
144 | НЕ ИСПОЛЬЗУЕТСЯ | ||||||||||||||||||||
1454 | левая одинарная кавычка | ||||||||||||||||||||
146 | ’ | правая одинарная кавычка | |||||||||||||||||||
147 | “ | ” | правый двойная кавычка | ||||||||||||||||||
149 | • | пуля | |||||||||||||||||||
150 | — | 9035 | длинное тире | ||||||||||||||||||
152 | ˜ | маленькая тильда | |||||||||||||||||||
153 | ™ | 9035 | š | Строчная латинская буква s с кароном | |||||||||||||||||
155 | › | кавычка с одинарным прямым углом | Латинская маленькая лигатура oe | ||||||||||||||||||
157 | НЕ ИСПОЛЬЗУЕТСЯ | ||||||||||||||||||||
158 | ž | Latin | Ÿ | Заглавная латинская буква Y с диэрезисом | |||||||||||||||||
160 | перевернутый восклицательный знак | ||||||||||||||||||||
162 | ¢ | ¢ | ¢ | знак центов | |||||||||||||||||
163 | £ | ¤ | ¤ | ¤ | знак валюты | ||||||||||||||||
165 | ¥ | ¥ | ¥ | знак иены | |||||||||||||||||
166 | ¦ | ¦ | 9035 9035 9035 9035 9035 9035 9035 9035 9035 9035 | § | § | знак раздела | |||||||||||||||
168 | ¨ | ¨ | ¨ | диэрезис | |||||||||||||||||
169 | |||||||||||||||||||||
170 | ª | ª | ª | женский порядковый указатель | |||||||||||||||||
171 | « | « | « | ¬ | ¬ | ¬ | без знака | ||||||||||||||
173 | мягкий дефис | ||||||||||||||||||||
174 | ® | ® | ® | зарегистрированный знак | |||||||||||||||||
175 | |||||||||||||||||||||
176 | ° | ° | ° | знак градуса | |||||||||||||||||
177 | ± | ± | ± | минус | ² | ² | ² | надстрочный два | |||||||||||||
179 | ³ | ³ | ³ | надстрочный три | 90´355 | острый акцент | |||||||||||||||
181 | µ | µ | µ | ||||||||||||||||||
182 | ¶ | ¶ | ¶ | знак пилкроу | |||||||||||||||||
183 | ¸ | ¸ | ¸ | седилла | |||||||||||||||||
185 | ¹ | ¹ | ¹ | ||||||||||||||||||
187 | » | » | » | кавычка с двойным углом вправо | |||||||||||||||||
188 | ¼ | ||||||||||||||||||||
189 | ½ | ½ | ½ | vulga r дробь одна половина | |||||||||||||||||
190 | ¾ | ¾ | ¾ | простая дробь три четверти | |||||||||||||||||
191 | ¿ | 35 9035 9035 9035 9035 9035 9035 перевернутый вопрос 9035 | 192 | À | À | À | Заглавная латинская буква A с тупым шрифтом | ||||||||||||||
193 | Á | Á | Á | Á | Á | Â | Â | Â | Заглавная латинская буква A с циркумфлексом | ||||||||||||
195 | Ã | Ã | Ã | Ã | Ã | 9035 t4 | Ä | Ä | Ä | Заглавная латинская буква A с тремой | |||||||||||
197 | Å | Å | Å | Заглавная латинская буква A с кольцом вверху | |||||||||||||||||
198 | Æ | Æ | Æ | 9035 9035 9035 9035 9035 9035 9035 9035 9035 9035 9035 9035 9035 9035 9035 9035 9035 9035 9035 | Ç | Ç | Ç | Заглавная латинская буква C с седилем | |||||||||||||
200 | È | È | È | È | É | É | É | Заглавная латинская буква E с острым ударением | |||||||||||||
202 | Ê | Ê | Ê | Заглавная латинская буква E с циркумфлексом 903 | Ë | Ë | Заглавная латинская буква E с тремой | ||||||||||||||
204 | 9 0355 | Ì | Ì | Ì | Заглавная латинская буква I с тупым ударением | ||||||||||||||||
205 | Í | Í | Í | Заглавная латинская буква I с острым ударением 204 | Î | Î | Заглавная латинская буква I с циркумфлексом | ||||||||||||||
207 | Ï | Ï | Ï | Латинская заглавная буква I с диэрезисом | Ð | Ð | Заглавная латинская буква Eth | ||||||||||||||
209 | Ñ | Ñ | Ñ | Заглавная латинская буква N с тильдой | |||||||||||||||||
21035 | |||||||||||||||||||||
21035 Ò | Заглавная латинская буква O с могилой | ||||||||||||||||||||
211 | Ó | Ó | Ó | Заглавная латинская буква O с острым ударением | |||||||||||||||||
212 | Ô | Ô | Ô | Заглавная латинская буква O с циркумфлексом | |||||||||||||||||
213 | Заглавная латинская буква O с тильдой | ||||||||||||||||||||
214 | Ö | Ö | Ö | Заглавная латинская буква O с диэрезисом | |||||||||||||||||
215 | |||||||||||||||||||||
216 | Ø | Ø | Ø | Заглавная латинская буква O со штрихом | |||||||||||||||||
217 | Ù | ||||||||||||||||||||
218 | Ú | Ú | Ú | Заглавная латинская буква l etter U с острым углом | |||||||||||||||||
219 | Û | Û | Û | Заглавная латинская буква U с циркумфлексом | |||||||||||||||||
220 | Ü | 9035 Ü | латинская заглавная U с диэрезисом | ||||||||||||||||||
221 | Ý | Ý | Ý | Заглавная латинская буква Y с острым ударением | |||||||||||||||||
222 | Þ | ||||||||||||||||||||
223 | ß | ß | ß | Строчная латинская буква резкая s | |||||||||||||||||
224 | à | à | à | à | à | á | á | á | Строчная латинская буква a с острым ударением | ||||||||||||
â | â | â | Строчная латинская буква a с циркумфлексом | ||||||||||||||||||
227 | ã | ã | ã | ã | ä | ä | ä | Строчная латинская буква a с диэрезисом | |||||||||||||
229 | å | å | маленькая латинская буква | кольцо | æ | æ | æ | Строчная латинская буква ae | |||||||||||||
231 | ç | ç | ç | латинская строчная буква с | è | è | Строчная латинская буква e с тупым ударением | ||||||||||||||
233 | é | é | é | Строчная латинская буква e с острым ударением | |||||||||||||||||
234 | ê | ê | ê | Латинская строчная буква e с флексом | |||||||||||||||||
ë | Строчная латинская буква e с тремой | ||||||||||||||||||||
236 | ì | ì | ì | Строчная латинская буква i с тупым шрифтом | |||||||||||||||||
237 | |||||||||||||||||||||
237 9035 í | Строчная латинская буква i с острым ударением | ||||||||||||||||||||
238 | î | î | î | Строчная латинская буква i с циркумфлексом | |||||||||||||||||
239 | Строчная латинская буква i с тремой | ||||||||||||||||||||
240 | ð | ð | ð | Строчная латинская буква eth | |||||||||||||||||
241 | ñ | ñ | ñ | Латинская строчная буква n с тильдой | |||||||||||||||||
242 | ò4354 9035 ò4355 | ò4355 o с могилой | |||||||||||||||||||
243 | ó | ó | ó | латинская строчная буква o с острым углом | |||||||||||||||||
244 | ô | ô | 354 циркумфлекс | ||||||||||||||||||
245 | х | х | х | латинская строчная буква o с тильдой | |||||||||||||||||
246 | |||||||||||||||||||||
247 | ÷ | ÷ | ÷ | знак деления | |||||||||||||||||
248 | ø | ø | ø | Строчная латинская буква o с чертой | |||||||||||||||||
249 | ù | ù | ù | ù | Латинская буква | Latin | ú | ú | ú | Строчная латинская буква u с острым ударением | |||||||||||
251 | û | û | û | латинская строчная буква | 352 | 354 ü | ü | ü | Строчная латинская буква u с диэрезисом | ||||||||||||
253 | ý | ý | ý | Строчная латинская буква y | þ | þ | Строчная латинская буква шип | ||||||||||||||
255 | ÿ | ÿ | ÿ | Строчная латинская буква y с тремой |
Набор символов ASCII
ASCII использует значения от 0 до 31 (и 127) для управляющих символов.
ASCII использует значения от 32 до 126 для букв, цифр и символов.
ASCII не использует значения от 128 до 255.
Набор символов ANSI (Windows-1252)
ANSI идентичен ASCII для значений от 0 до 127.
ANSI имеет собственный набор символов для значений от 128 до 159.
ANSI идентичен UTF-8 для значений от 160 до 255.
Набор символов ISO-8859-1
ISO-8859-1 идентичен ASCII для значений от 0 до 127.
ISO-8859-1 не использует значения от 128 до 159.
ISO-8859-1 идентичен UTF-8 для значений от 160 до 255.
Набор символов UTF-8
UTF-8 идентичен ASCII для значений от 0 до 127.
UTF-8 не использует значения от 128 до 159.
UTF-8 идентичен ANSI и 8859-1 для значений от 160 до 255.
UTF-8 продолжает значение 256 с более чем 10 000 различных
символы.
Для более детального ознакомления ознакомьтесь с нашим полным справочником по набору символов HTML.
Как изменить кодировку символов в Microsoft Word? »WebNots
Консорциум
Unicode назначает уникальный код для каждого символа, который вы можете ввести с клавиатуры. Это кодовая точка в шестнадцатеричном формате, например U + 2714 для символа галочки ✔. Однако отдельные приложения используют кодировку символов для преобразования этой кодовой точки Unicode в двоичный компьютерный код. Когда вы вводите код, ваш компьютер преобразует его в символ, используя кодовую страницу локали.Итак, символьная кодировка документов важна для просмотра их в удобочитаемом формате.
Шаги процесса в символьном отображении
Вы просматриваете ненужные символы в Word?
Microsoft Word использует кодировку символов Windows или macOS по умолчанию для расширений файлов, таких как .doc и .docx. Вы увидите ненужные символы при открытии текстового файла с другой кодировкой символов. Это не означает, что документ поврежден. Это означает, что документ был сохранен с другим стандартом кодировки, и вам необходимо изменить кодировку для просмотра в Word.
Как изменить кодировку символов в Microsoft Word?
Каждый раз, когда вы открываете несовместимый документ, Word отображает диалог преобразования файла. Однако, если вы его не видите, эту опцию легко включить. Вы можете открыть любой документ Word, чтобы включить этот параметр, так как он будет применен ко всем документам.
Диалог включения преобразования формата файла
- Откройте документ и перейдите в меню «Файл> Параметры».
- Щелкните раздел «Дополнительно» и прокрутите вниз до раздела «Общие» на правой панели.
- По умолчанию Word отключает параметр «Подтверждать преобразование формата файла при открытии».
- Установите флажок, чтобы включить эту опцию.
- Нажмите «ОК», чтобы применить изменения и закрыть все открытые документы.
Подтверждение преобразования формата файла при открытии
Эта опция поможет вам запускать диалоговое окно всякий раз, когда вы открываете файлы в форматах, отличных от .doc или .docx. Например, если вы используете Word для открытия простого текстового файла с расширением .txt, вы получите запрос на проверку формата файла.
Связано: Как изменить имя встроенного файла в Word?
Изменить кодировку символов
Теперь откройте файл, в котором вы хотите изменить кодировку символов. Word покажет вам диалоговое окно «Преобразовать файл», как показано ниже.
Конвертировать файл
Выберите формат файла, если вам известен обычный текст или документ HTML. Если вам непонятно, выберите опцию «Закодированный текст» и нажмите кнопку «ОК». Затем вы увидите диалоговое окно «Преобразование файла». Как правило, «Windows (по умолчанию)» выбирает кодировку в зависимости от настроек локали.Это может создать проблемы при просмотре специальных символов и знаков.
Преобразование файлов с изменением кодировки
Выберите вариант «Другая кодировка», чтобы активировать поле со списком рядом. Вы увидите список доступных в списке вариантов кодировки и выберите формат «Unicode (UTF-8)». При необходимости выберите «Вставить разрывы строк» и разрешите замену символов. Нажмите «ОК», чтобы завершить процесс. Теперь вы успешно изменили кодировку символов файла на UTF-8.
Это поможет вам просмотреть содержимое файла в удобочитаемом формате, так как UTF-8 должен поддерживать большинство символов.
Отключить преобразование файлов
После того, как вы закончите с изменением кодировки символов файла, обязательно отключите опцию преобразования файла. Вернитесь в «Файл> Параметры» и измените настройки в разделе «Дополнительно». Это поможет вам в будущем отключить диалог преобразования файлов.
Сохранение файлов в другой кодировке
Вы не можете изменить кодировку файла, который вы сохраняете как файл .docx. Word назначит кодировку символов по умолчанию на основе вашей региональной языковой установки или UTF-8.Однако вы можете изменить кодировку, изменив файл в текстовом формате.
- Перейдите в меню «Файл» и выберите «Сохранить как».
- Щелкните раскрывающееся меню «Сохранить как тип» и выберите вариант «Обычный текст».
Сохранить документ Word в виде обычного текста
Нажмите кнопку «Сохранить», и Word откроет диалоговое окно «Преобразование файлов», как описано выше. Оттуда вы можете изменить кодировку и сохранить документ.
Изменить кодировку в Word Office 365 на Mac
Подобно Windows, версия Office 365 для Mac также имеет параметры, позволяющие включить проверку формата файла и предложить преобразование.
- Откройте документ Microsoft Word и перейдите в раздел «Word> Настройки…».
- Щелкните «Общие» в разделе «Инструменты разработки и проверки».
- Включите «Подтверждать преобразование формата файла при открытии» в разделе «Настройки».
- Закройте все открытые документы, чтобы изменения вступили в силу.
Включить проверку формата файла в Mac Word
Каждый раз, когда вы открываете несовместимый файл, Word покажет вам преобразованный файл из диалогового окна параметров.
Вариант преобразования файла в Mac
Выберите «Закодированный текст» или формат файла, если вы знаете, и нажмите кнопку «ОК».В следующем диалоговом окне вы можете выбрать вариант «Другая кодировка» и выбрать кодировку «Юникод (UTF-8)».
Изменить кодировку в Mac
В отличие от Windows, здесь вы можете четко видеть предупреждающее сообщение, в котором указывается, выберите кодировку, которая делает ваш документ читаемым. Кроме того, вы можете обнаружить, что несовместимый текст отмечен красным цветом с сообщением о том, что этот текст не будет правильно сохранен с выбранной кодировкой.
Кроме того, вы также можете сохранить файл в текстовом формате, чтобы изменить кодировку в Mac так же, как в версии Windows Word.
PEP 597: использовать UTF-8 для кодировки текстовых файлов по умолчанию — PEP
Привет всем.
Microsoft изменила кодировку текста по умолчанию для notepad.exe на UTF-8 с майского обновления 2019 года!
Я предлагаю также изменить кодировку текста Python по умолчанию с 2021 года. Я считаю, что 2021 год не слишком рано для этого изменения. (Если мы выпустим 3.9 в 2020 году, этот PEP будет применяться к 3.10, хотя предупреждение об устаревании повышается с 3.8)
В настоящее время TextIOWrapper
использует локаль .getpreferredencoding (False)
(в дальнейшем именуемое «кодирование локали»), если кодировка
не указана.
Этот PEP предлагает изменить кодировку текста по умолчанию на «UTF-8»
независимо от платформы или локали.
Люди думают, что это всегда UTF-8
Авторы пакетов, использующие macOS или Linux, могут забыть, что кодировка по умолчанию
не всегда UTF-8.
Например, long_description = open ("README.md"). Read ()
в настройке
.py
— распространенная ошибка. Если в файле README.md
есть хотя бы один смайлик или любой другой символ
, отличный от ASCII, многие пользователи Windows
не могут установить пакет из-за ошибки UnicodeDecodeError
.
Активная кодовая страница нестабильна
Некоторые инструменты в Windows изменяют активную кодовую страницу на 65001 (UTF-8), а
Microsoft более широко использует UTF-8 и cp65001 в последних версиях
Windows 10.
Например, «Командная строка» по умолчанию использует устаревшую кодовую страницу.
Но подсистема Windows для Linux (WSL) изменяет активную кодовую страницу на
65001, а python.exe
может быть запущен из WSL. Таким образом, python.exe
, выполняемый из устаревшей консоли, и из WSL не может читать текстовые файлы
, написанные друг другом.
Но многие пользователи Windows не понимают, какая кодовая страница активна.
Таким образом, изменение кодировки текстового файла по умолчанию на основе активной кодовой страницы
вызывает путаницу.
Последовательная кодировка текста по умолчанию сделает поведение Python более ожидаемым
и более легким для изучения.
Новичкам проще использовать UTF-8 по умолчанию
Python — один из самых популярных первых языков программирования.
Новые программисты могут не знать о кодировании. Когда они загружают из Интернета текстовые данные
, записанные в UTF-8, они вынуждены изучать кодировку.
Популярные текстовые редакторы, такие как VS Code или Atom, по умолчанию используют UTF-8.
Даже Microsoft Notepad по умолчанию использует UTF-8 с момента обновления Windows 10 May 2019
Update. (Обратите внимание, что Python 3.9 выйдет в 2021 году.)
Кроме того, кодировка исходных файлов Python по умолчанию — UTF-8.
Мы можем предположить, что новые программисты Python, которые не знают о кодировке
, используют редакторы, которые по умолчанию используют UTF-8.
Было бы хорошо, если бы новые программисты не были вынуждены изучать кодировку
до тех пор, пока им не потребуется обрабатывать текстовые файлы, закодированные в кодировке, отличной от UTF-8.
Начиная с Python 3.9, кодировка по умолчанию TextIOWrapper
и open ()
— это
, измененная с локали .getpreferredencoding (False)
на «UTF-8».
Если есть кодировка устройства ( os.device_encoding (buffer.fileno ())
),
по-прежнему заменяет кодировку по умолчанию.
Незатронутые территории
В отличие от режима UTF-8, locale.getpreferredencoding (False)
по-прежнему учитывает кодировку локали
.
stdin
, stdout
и stderr
также продолжают учитывать кодировку локали
. Например, эти команды не вызывают моджибаке независимо от активной кодовой страницы
:
> python -c "print ('こ ん に ち は')" | более
こ ん に ち は
> python -c "print ('こ ん に ち は')"> темп.текст
> введите temp.txt
こ ん に ち は
Каналы и TTY должны использовать кодировку локали:
- Подпроцесс
os.popen
использует кодировку языкового стандарта, потому что подпроцесс
будет использовать кодировку языкового стандарта. -
getpass.getpass
использует кодировку локали при использовании TTY.
Затронутые API
На все остальные коды, использующие кодировку по умолчанию TextIOWrapper
или open
, влияет
.Это неполный список API, затронутых этим PEP:
-
lzma.open
,gzip.open
,bz2.open
,ZipFile.read_text
-
socket.makefile
-
tempfile.TemporaryFile
,tempfile.NamedTemporaryFile
-
trace.CoverageResults.write_results_file
Эти API-интерфейсы всегда будут использовать «UTF-8» при открытии текстовых файлов.
Предупреждение об устаревании
из 3.8 и далее, DeprecationWarning
отображается, когда кодировка опущена, а
кодировка локали не является UTF-8. Это помогает не только при написании кода с прямой совместимостью
, но и при исследовании неожиданной
UnicodeDecodeError
, вызванной предположением, что кодировка текста по умолчанию — UTF-8.
(См. Люди предполагают, что это всегда UTF-8
_ выше.)
Почему бы просто не включить режим UTF-8 по умолчанию?
Этот PEP не является взаимоисключающим для режима UTF-8.
Если мы включим режим UTF-8 по умолчанию, даже люди, использующие Windows, забудут
, кодировка по умолчанию не всегда UTF-8. Будет написано больше сценариев
, предполагая, что кодировка по умолчанию — UTF-8.
Таким образом, изменение кодировки текстовых файлов по умолчанию на UTF-8 было бы лучше
, даже если режим UTF-8 включен по умолчанию в какой-то момент.
Почему бы не изменить и кодировку std (in | out | err)?
Даже если кодировка локали отличается от UTF-8, может быть много текстовых файлов UTF-8
.Эти файлы могут быть загружены из Интернета или написаны
современными текстовыми редакторами.
С другой стороны, предполагается, что кодировка терминала такая же, как кодировка локали
. Предполагается, что и другие инструменты также читают и записывают кодировку локали
.
std (in | out | err), скорее всего, будет подключен к терминалу или другим инструментам.
Значит, следует соблюдать кодировку локали.
Почему не всегда предупреждать, если кодировка опущена?
Пропуск кодирования — распространенная ошибка при написании переносимого кода.
Но когда переносимость не имеет значения, предположение, что UTF-8 не так уж и плохо, потому что
Python уже реализует принуждение локали (: pep: 538
) и режим UTF-8
(: pep: 540
).
И эти скрипты станут переносимыми, когда кодировка по умолчанию будет изменена с
на UTF-8.
Могут быть сценарии, использующие кодировку локали или активную кодовую страницу, а не
UTF-8. Их необходимо переписать, чтобы явно указать кодировку
.
Если сценарий предполагает
latin1
илиcp932
, следует использоватьencoding = "latin1"
илиencoding = "cp932"
.Если сценарий разработан с учетом кодировки локали, следует использовать
locale.getpreferredencoding (False)
.Существуют непереносимые короткие формы
locale.getpreferredencoding (False)
.- В Windows вместо этого можно использовать
«mbcs»
. - В Unix вместо этого можно использовать
os.fsencoding ()
.
- В Windows вместо этого можно использовать
Обратите внимание, что такие сценарии будут повреждены даже без обновления Python, например
, когда:
- Обновление Windows
- Изменение языковых настроек
- Замена старой консоли на современный терминал
- Использование инструментов, которые выполняют
chcp 65001
При открытии текстовых файлов по умолчанию используется «UTF-8».Это соответствует кодировке
по умолчанию, используемой для text.encode ()
.
Псевдоним для кодировки локали
encoding = locale.getpreferredencoding (False)
слишком длинный, а
«mbcs»
и os.fsencoding ()
не переносимы.
Можно добавить новый псевдоним кодирования «locale» в качестве простой и переносимой
версии locale.getpreferredencoding (False)
.
Сложность этого неизвестна, поскольку кодировок
в настоящее время
импортированы до _bootlocale
.
Другой вариант — для TextIOWrapper
обрабатывать "locale"
как особый случай
:
, если кодировка == "локаль":
encoding = locale.getpreferredencoding (Ложь)
Как решить проблемы с кодировкой Unicode
Кодировка
прозрачна для большинства пользователей.
Он даже стал настолько прозрачным с момента рождения гениального формата Unicode UTF-8, что даже разработчик может потеряться в случае несовместимости.
РЕЗЮМЕ
1. Что такое кодирование?
⇒ Расшифровка кодировок на конкретном примере
2. Формат UTF-8
⇒ Сосредоточьтесь на формате Unicode UTF-8, который теоретически устраняет любые проблемы с кодировкой
3. Постоянные проблемы с кодировкой
⇒ Почему, несмотря на формат Unicode, проблемы с кодировкой остаются актуальными?
4. Определение кодировки файла
⇒ Мы предлагаем стандартные инструменты для простого определения кодировки текста
5.Расширенное упражнение VBA
⇒ Способ создания файлов Unicode в VBA с или без спецификации
Не стесняйтесь оставлять комментарии и запросы о поддержке по конкретной проблеме с кодировкой.
Строка хранится в памяти не как строка, а как 0 и 1 в двоичном формате.
Для нас наиболее читаемым представлением этого двоичного кода является шестнадцатеричный код, в котором каждый байт представляет отдельный символ в ASCII или в расширенном ASCII.
Пример :
Следующая строка закодирована кодом «Windows-1252»:
«L’exp é rience est le nom que chacun donne à ses erreurs.”Оскар Уайльд
В шестнадцатеричном коде это представлено, как показано ниже:
22 4C 27 65 78 70 E9 72 69 65 6E 63 65 20 65 73 | “L’exp é rience es |
74 20 6C 65 20 6E 6F 6D 20 71 75 65 20 63 68 61 | t le nom que cha |
63 75 6E 20 64 6F 6E 6E 65 20 E0 20 73 65 73 20 | cun donne à ses |
65 72 72 65 75 72 73 2E 22 20 4F 73 63 61 72 20 | ошибки.”Оскар |
57 69 6C 64 65 | Уайльд |
7-й символ « é » сохраняется в памяти с использованием следующего шестнадцатеричного значения: « E9 ».
В таблице символов Windows-1252 код « E9 » соответствует французскому символу « é »:
Окна-1252 (CP1252) | ||||||||||||||||
x0 | х1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
0x | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | LF | VT | FF | CR | SO | SI |
1x | DLE | DC1 | DC2 | DC3 | DC4 | НАК | SYN | ЭТБ | МОЖЕТ | EM | ПОД | ESC | FS | GS | RS | США |
2x | СП | ! | “ | # | $ | % | и | ‘ | ( | ) | * | + | , | – | . | _ |
6x | ` | б | с | д | e | f | г | ч | и | j | к | л | м | n | или | |
7x | п. | q | г | с | т | u | v | Вт | х | y | z | { | | | } | ~ | DEL |
8x | € | ‚ | ƒ | „ | … | † | ‡ | ˆ | ‰ | Š | ‹ | Œ | Ž | |||
9x | ‘ | ‘ | “ | ” | • | – | – | ~ | ™ | š | › | œ | × | Ÿ | ||
Топор | НБСП | ¡ | ¢ | £ | ¤ | ¥ | ¦ | § | ¨ | © | ª | « | ¬ | ® | ¯ | |
Bx | ° | ± | ² | ³ | ´ | µ | ¶ | · | ¸ | ¹ | º | » | ¼ | ½ | ¾ | ¿ |
Сх | À | Á | Â | Ã | Ä | Å | Æ | Ç | È | É | Ê | Ë | Ì | Í | Î | Ï |
Dx | Ð | Ñ | Ò | Ó | Ô | Õ | Ö | × | Ø | Ù | Ú | Û | Ü | Ý | Þ | ß |
Пример: | до | á | – | г | ä | å | æ | ç | и | é | ê | ë | мм | – | – | • |
Fx | ð | – | шт | — | ô | х | ö | ÷ | ø | ù | ú | û | ü | ý | þ | ÿ |
Тем не менее, если вы войдете в окно MS-DOS, шестнадцатеричный код «E9» не будет отображаться правильно!
Действительно, французское окно MS-DOS покажет следующее:
Cd \ temp
Типовые испытания.txt
«L’exp Ú rience est le nom que chacun donne Ó ses erreurs». Оскар Уайльд
Это просто потому, что MS-DOS по умолчанию считает, что тексты (на французском компьютере) кодируются с использованием страницы 850 ниже:
стр. 850 (DOS latin-1) | ||||||||||||||||
x0 | х1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
0x | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | LF | VT | FF | CR | SO | SI |
1x | DLE | DC1 | DC2 | DC3 | DC4 | НАК | SYN | ЭТБ | МОЖЕТ | EM | ПОД | ESC | FS | GS | RS | США |
2x | СП | ! | “ | # | $ | % | и | ‘ | ( | ) | * | + | , | – | . | _ |
6x | ` | б | с | д | e | f | г | ч | и | j | к | л | м | n | или | |
7x | п. | q | г | с | т | u | v | Вт | х | y | z | { | | | } | ~ | DEL |
8x | Ç | ü | é | – | ä | до | å | ç | ê | ë | и | • | – | мм | Ä | Å |
9x | É | æ | Æ | ô | ö | шт | û | ù | ÿ | Ö | Ü | ø | £ | Ø | × | ƒ |
Топор | á | – | — | ú | – | Ñ | ª | º | ¿ | ® | ¬ | ½ | ¼ | ¡ | « | » |
Bx | ░ | ▒ | ▓ | │ | ┤ | Á | Â | À | © | ╣ | ║ | ╗ | ╝ | ¢ | ¥ | ┐ |
Сх | └ | ┴ | ┬ | ├ | ─ | ┼ | г | Ã | ╚ | ╔ | ╩ | ╦ | ╠ | = | ╬ | ¤ |
Dx | ð | Ð | Ê | Ë | È | № | Í | Î | Ï | ┘ | ┌ | █ | ▄ | ¦ | Ì | ▀ |
Пример: | Ó | ß | Ô | Ò | х | Õ | µ | þ | Þ | Ú | Û | Ù | ý | Ý | ¯ | ´ |
Fx | SHY | ± | ‗ | ¾ | ¶ | § | ÷ | ¸ | ° | ¨ | · | ¹ | ³ | ² | ■ | НБСП |
Шестнадцатеричный код « E9 » соответствует символу « Ú » из списка символов на странице 850 и не соответствует символу « é », как мы могли ожидать.
Таким образом, понятно, что текстовый файл на самом деле является закодированным сообщением (не зашифрованным сообщением), которое следует декодировать с использованием точной таблицы перевода.
Таким образом, сложность двоякая:
— Вы должны тщательно выбирать, в зависимости от целевого приложения, кодировку для использования при сохранении текста.
— Когда пришло время отображать текст, необходимо иметь возможность определить используемую кодировку.
В блоге INVIVOO используется кодировка UTF-8. Но если бы вам было интересно принудительно использовать кодировку ISO-8859-7 в Internet Explorer с помощью меню «Вид => Кодировка => Больше => Греческий (ISO)», то следующие символы windows-1252 будут отображаться неправильно.
x0 | х1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
Fx | ð | – | шт | — | ô | х | ö | ÷ | ø | ù | ú | û | ü | ý | þ | ÿ |
При использовании ISO-8859-7 указанные выше символы будут отображаться как следующие символы:
x0 | х1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
Факс | Γ ° | Γ ± | Γ² | Γ³ | Γ΄ | Γ΅ | ΓΆ | Г · | ΓΈ | ΓΉ | ΓΊ | Γ » | ΓΌ | Γ½ | ΓΎ | ΓΏ |
Мы видим, что ожидаемые западные символы теперь отображаются плохо и что есть 2 символа вместо одного.
Это связано с тем, что в кодировке Unicode UTF-8 западные специальные символы имеют двухбайтовую кодировку . И потому, что кодировка ISO-8859-7 (греческий) считает, что каждый из этих двух байтов сам по себе является символом в своей таблице сопоставления.
Обратите внимание, что количество существующих кодировок довольно велико. У каждого из них есть веская причина знать историю кодирования. После интернационализации, последовавшей за развитием Интернета, управление кодированием становилось все более и более сложным из-за многоязычных сред.
К счастью, , стандарт Unicode успешно справился с задачей собрать все символы из каждой кодировки в одну-единственную таблицу символов: список символов Unicode.
Формат Unicode родился из желания унифицировать множество существующих кодировок. Множественность кодов была необходима, потому что системы всегда считали, что один байт соответствует одному символу. Однако в байте можно закодировать только 256 символов.Поэтому некоторым языкам требовался собственный расширенный код ASCII. Французский « é », например, совершенно бесполезен для греков, которым также необходимо кодировать целый собственный алфавит.
Решение Unicode состоит в том, чтобы избавиться от ограничения одного байта, чтобы иметь почти бесконечное количество возможных символов. Азиатские символы могут быть закодированы, например, с использованием 4 байтов.
К сожалению, существует несколько версий формата Unicode в зависимости от того, является ли количество байтов на символ фиксированным или динамическим, а также в зависимости от порядка чтения байтов.
Мы представим только формат UTF-8, потому что он имеет тенденцию доминировать из-за его эффективности с точки зрения размера памяти и из-за его обратной совместимости с ASCII. Действительно, ничто не отличает старый файл ASCII от файла UTF-8. Только при использовании специальных символов файл UTF-8 будет отличаться от ASCII.
Специальные символы в UTF-8 хранятся в шестнадцатеричном формате от 2 до 4 байтов. Он кодируется просто с учетом карты символов UTF-8. Почему-то все так же просто, как раньше. : «Код» всегда представляет собой отдельный символ в отображении символов.
Если приложение не может прочитать UTF-8 или если оно принудительно используется в расширенном ASCII (как в нашем предыдущем примере с принудительным использованием ISO-8859-7 в Internet Explorer), то приложение будет читать каждый байт как один отдельный символ. Однако все специальные символы Западной Европы закодированы 2 байтами в UTF-8.
=> Именно по этой причине подчеркнутые символы отображаются на двух символах вместо одного, когда кодировка определена неправильно.
Теперь вы знаете почти все о UTF-8:
— Имеет обратную совместимость с ASCII
— Специальные символы хранятся в 2–4 байтах
— Как и любая кодировка, приложение, которое «считывает» шестнадцатеричный код, должно использовать правильную кодировку
Вы знаете только «почти все», потому что в Unicode есть особая функция, которая по-прежнему вызывает некоторые проблемы совместимости: BOM (Byte Mark Order).Об этом мы поговорим в следующей части.
После этого необходимого представления кодировки текста мы, наконец, переходим к основной теме этой статьи, задав следующий вопрос:
Если UTF-8 содержит все символы и может заменить все коды, почему мы все еще сталкиваемся с проблемами кодирования ???
1. Изменение требует времени
Основная причина в том, что старые системы не обязательно развивались одновременно с революцией Unicode. Таким образом, могут быть некоторые базы данных, приложения или пакеты, которые могли быть запрограммированы на получение определенной кодировки, и достаточно часто они могли ожидать одного байта на символ.
2. Специфика Microsoft Windows
Microsoft взяла на себя смелость создать свои собственные таблицы символов, производные от таблиц ISO-8859-x. Более того, невозможно узнать, использует ли текст таблицу ISO или таблицу Windows, потому что обе они соответствуют просто последовательности байтов.
Эта свобода, полученная Microsoft, была бы меньшей проблемой, если бы приложения Windows использовали UTF-8 по умолчанию, но это не так. Пока нет специальных символов за пределами таблицы Windows-1252, большинство приложений Windows не кодируют тексты с использованием UTF-8.
Таким образом, отправка текстового файла Windows на сервер Linux или собственное приложение может легко ввести в заблуждение.
3. Символьные шрифты
Поскольку Unicode может кодировать все возможные символы, он стал кошмаром для художников, создающих шрифты, потому что перерисовка каждого символа — огромная задача. И они делают это не для того, чтобы сосредоточиться на интересующем их языке. Кроме того, стандарт Unicode может добавлять новые символы в таблицу, а существующие шрифты становятся неполными!
В результате для экзотических языков может потребоваться работа с определенными шрифтами.
Однако шрифты влияют только на отображение конечных пользователей и никоим образом не нарушают обработку или хранение строк в базе данных.
3. Спецификация (метка порядка байтов)
Знак порядка байтов представляет собой последовательность непечатаемых байтов Unicode, помещенных в начало текста Unicode для облегчения его интерпретации. Этот знак порядка байтов не является ни стандартным, ни обязательным, но он упрощает совместимым приложениям определение подтипа формата Unicode и направление чтения байтов.
Это часто вызывает проблемы совместимости, потому что не все приложения знают, как обрабатывать «BOM». Для несовместимых приложений эта последовательность байтов считается некоторыми нормальными символами в расширенном ASCII. В случае, если файл UTF-8 ошибочно распознан как файл Windows-1252, мы увидим 3 странных символа в самом начале файла: ï »¿.
Символы ï »¿соответствуют шестнадцатеричной строке EF BB BF, которая представляет собой код, указывающий совместимым приложениям, что файл является файлом Unicode в формате UTF-8.
Другая проблема спецификации — путаница, которую она может вызвать у пользователя. EF BB BF соответствует некоторым непечатаемым символам в UTF-8. Таким образом, в текстовом редакторе Unicode трудно узнать, была ли применена спецификация или нет, поскольку она невидима, а также необязательна в файле UTF-8. Многие пользователи, скорее всего, не знают, что такое BOM и как это может привести к сбою несовместимых приложений.
Есть несколько дополнительных спецификаций, которые можно использовать для обозначения форматов Unicode, различных UTF-8 и общих элементов, которые могут быть совместимы.
Поскольку спецификация невидима для пользователя, путаница очевидна и неизбежна.
Однако , в разделе ниже, мы предоставим вам стандартные инструменты, чтобы вы могли быстро определить, является ли ваш файл таким, каким вы его ожидаете.
Независимо от происхождения файла, будь то сгенерированный автоматически, или отправленный поставщиком данных, или созданный вручную, может быть полезно проверить с абсолютной уверенностью его формат и показать возможную спецификацию тегов.
Если у вас нет доступа к расширенным (и обычно платным) текстовым редакторам, вы можете легко сделать это с помощью стандартных шестнадцатеричных редакторов в Windows и Linux.
В Windows:
— Ключевые окна + R
— Командная оболочка powershell
— Cd \ temp
— Fhx test.txt
В Linux:
cd / home / test /
file -bi test.txt
=> Linux «попытается» показать формат файла, но если вы хотите увидеть тег спецификации, необходимо ввести следующее :
xxd test.txt
Если в самом начале файла есть тег спецификации, то это текст в формате Unicode:
UTF-8 = EF BB BF
UTF-16 Big Endian = FE FF
UTF-16 Little Endian = FF FE
UTF-32 Big Endian = 00 00 FE FF
UTF-32 Little Endian = FF FE 00 00
Прежде всего, помните, что отсутствие тега спецификации не означает, что файл не является файлом Unicode.
Действительно, наоборот, может потребоваться его удаление для увеличения совместимости с вашими приложениями.
В следующей части мы увидим, как удалить спецификацию в VBA, чтобы избежать сбоев последующих приложений.
При создании файла Unicode с использованием макросов VBA, предназначенных для чувствительных к формату приложений, вы, вероятно, столкнетесь с некоторыми трудностями при освоении спецификации.
Для начала вы можете использовать команды, предложенные в предыдущем разделе, для проверки ваших выходных файлов.
Чтобы создавать файлы UTF-8 в удобное для вас время — с отметкой порядка байтов или без нее — вам необходимо знать следующие ограничения VBA :
1. Команда Print # 1 не сохраняется в UTF-8, вы потеряете свои символы Unicode.
Пример :
Откройте «c: \ Temp \ test.txt» для вывода как # 1
Print # 1, « Линия 1: особый символ Юникода: Ж = D0 96 ”
2. Команда SavetoFile из объекта «ADODB.Stream» всегда создает спецификацию «EF BB BF» для файлов UTF-8! Не ищите слишком много: нет возможности написать UTF-8 без спецификации, но мы предоставим вам решение .
Знание этих двух ограничений сэкономит вам много времени на исследования.
Ниже приведен пример кода, который позволяет создать два файла: один со спецификацией «EF BB BF», а другой — без спецификации.
Подложка Create_UTF8 ()
Dim lStreamUTF8BOM, lStreamBinaireSansBOM как объект
Установить lStreamUTF8BOM = CreateObject («ADODB.Stream»)
Установить lStreamBinaireSansBOM = CreateObject («ADODB.Stream»)
‘Мы создаем главный поток
lStreamUTF8BOM.Type = 2‘ 2 = Type Texte
lStreamUTF8BOM.Mode = 3 ‘3 = Mode Read and Write
lStreamUTF8BOM.Charset =« UTF-8 »‘ Unicode UTF-8 format with BOM
lStreamUTF8BOM.Open
lStreamUTF8BOM.WriteText «Линия 1: особый символ Юникода: Ж = D0 96» & vbCrLf
lStreamUTF8BOM.WriteText «Линия 2» & vbCrLf
‘сохранение как UTF-8 с BOM
lStreamUTF8BOM.SaveToFile« c: \ Temp \ UTF8withBOM.txt », 2‘ 2 = перезаписать
‘сохранение как UTF-8 без спецификации
lStreamBinaireSansBOM.Type = 1‘ 1 = двоичный поток
lStreamBinaireSansBOM.Mode = 3 ‘3 = Mode Read and Write
lStreamBinaireSansBOM.Open
lStreamUTF8BOM.Position = 3
lStreamUTF8BOM.CopyTo lStreamBinaireSansBOM
lStreamBinaireSansBOM.SaveToFile «c: \ Temp \ UTF8withoutBOM.txt», 2 ‘2 = перезаписать
lStreamBinaireSansBOM.Flush
lStreamBinaireSansBOM.Close
lStreamUT.Fream8BOM.Flush
Концевой переводник
Чтобы проверить результаты, вы можете открыть файлы в C: \ TEMP \ с помощью Powershell и команды fhx, как показано в предыдущем разделе.
Мы показали вам, как работает кодирование и что принесла революция UTF-8.
Однако несовместимость кодирования может сохраняться между приложениями, поэтому мы предложили вам несколько инструментов для проверки формата ваших файлов, а также для просмотра невидимой метки порядка байтов. Кроме того, теперь вы знаете, как создавать некоторые файлы UTF-8 с или без спецификации через VBA.
Теперь у вас есть все инструменты, которые помогут диагностировать возможные проблемы с кодировкой, и вы можете сделать это, используя только некоторые стандартные инструменты!
.