Как изменится информационный размер текстового файла, если вместо 256 символов алфавита 16
Обновлено: 21.11.2024
В этой главе объясняется, как выбрать набор символов. Он включает следующие темы:
Кодировка набора символов
Когда компьютерные системы обрабатывают символы, они используют числовые коды вместо графического представления символа. Например, когда в базе данных хранится буква A, на самом деле в ней хранится числовой код, интерпретируемый программным обеспечением как буква. Эти числовые коды особенно важны в глобальной среде из-за потенциальной необходимости преобразования данных между различными наборами символов.
Этот раздел включает следующие темы:
Что такое кодированный набор символов?
При создании базы данных вы указываете набор закодированных символов. Выбор набора символов определяет, какие языки могут быть представлены в базе данных. Это также влияет на:
Как вы создаете схему базы данных
Как вы разрабатываете приложения, обрабатывающие символьные данные
Как база данных работает с операционной системой
Для хранения данных символов требуется место для хранения
Группа символов (например, буквы алфавита, иероглифы, символы, знаки препинания и управляющие символы) может быть закодирована как набор символов. Закодированный набор символов назначает уникальные числовые коды каждому символу в репертуаре символов. Числовые коды называются кодовыми точками или закодированными значениями. В Табл. 2-1 показаны примеры символов, которым присвоено шестнадцатеричное кодовое значение в наборе символов ASCII.
Таблица 2-1 Символы, закодированные в наборе символов ASCII
Компьютерная индустрия использует множество кодированных наборов символов. Наборы символов различаются следующим образом:
Количество доступных символов
Доступные персонажи (репертуар персонажей)
Письма, используемые для письма, и языки, которые они представляют
Кодовые значения, присвоенные каждому символу
Схема кодирования, используемая для представления символа
Oracle поддерживает большинство национальных, международных и специфичных для поставщиков стандартов кодирования наборов символов.
"Наборы символов" для полного списка наборов символов, поддерживаемых Oracle
Какие символы закодированы?
Символы, закодированные в наборе символов, зависят от представленных систем письма. Система письма может использоваться для представления языка или группы языков. Системы письма можно разделить на две категории:
Этот раздел также включает следующие темы:
Системы фонетического письма
Системы фонетического письма состоят из символов, обозначающих различные звуки, связанные с языком. Греческий, латинский, кириллица и деванагари — все это примеры фонетических систем письма, основанных на алфавитах. Обратите внимание, что алфавиты могут представлять более одного языка. Например, латинский алфавит может представлять многие западноевропейские языки, такие как французский, немецкий и английский.
Символы, связанные с фонетической системой письма, обычно могут быть закодированы одним байтом, поскольку репертуар символов обычно меньше 256 символов.
Идеографические системы письма
Системы идеографического письма состоят из идеограмм или пиктограмм, которые представляют значение слова, а не звуки языка. Китайский и японский языки являются примерами систем идеографического письма, основанных на десятках тысяч идеограмм. Языки, использующие идеографические системы письма, также могут использовать слоговое письмо. Слоговые слова обеспечивают механизм для передачи дополнительной фонетической информации. Например, в японском есть два слоговых письма: хирагана, обычно используемая для грамматических элементов, и катакана, обычно используемая для иностранных и звукоподражательных слов.
Символы, связанные с идеографической системой письма, обычно кодируются более чем одним байтом, поскольку репертуар символов насчитывает десятки тысяч символов.
Пунктуация, управляющие знаки, цифры и символы
Помимо кодирования алфавита языка необходимо кодировать и другие специальные символы:
Знаки препинания, такие как запятые, точки и апострофы
Специальные символы, такие как символы валюты и математические операторы
Управляющие символы, такие как возврат каретки и табуляция
Направление написания
Большинство западных языков пишут слева направо сверху вниз страницы. Языки Восточной Азии обычно пишутся сверху вниз справа налево на странице, хотя для технических книг, переведенных с западных языков, часто делаются исключения. На арабском и иврите пишут справа налево сверху вниз.
Цифры в обратном направлении на арабском языке и иврите. Хотя текст пишется справа налево, числа в предложении пишутся слева направо. Например, «Я написал 32 книги» будет записано как «skoob 32 etorw I».Независимо от направления записи Oracle хранит данные в логическом порядке. Логический порядок означает порядок, в котором кто-то печатает язык, а не то, как он выглядит на экране.
Направление письма не влияет на кодировку символа.
Какие символы поддерживает набор символов?
Разные наборы символов поддерживают разные репертуары символов. Поскольку наборы символов обычно основаны на определенном сценарии письма, они могут поддерживать более одного языка. Когда наборы символов были впервые разработаны, у них был ограниченный набор символов. Даже сейчас могут быть проблемы с использованием определенных персонажей на разных платформах. Следующие символы CHAR и VARCHAR представлены во всех наборах символов базы данных Oracle и могут переноситься на любую платформу:
Прописные и строчные буквы английского алфавита от A до Z и от a до z
Арабские цифры от 0 до 9
Следующие управляющие символы: пробел, горизонтальная табуляция, вертикальная табуляция, перевод страницы
Если вы используете символы вне этого набора, позаботьтесь о том, чтобы ваши данные поддерживались в выбранном вами наборе символов базы данных.
Правильная установка параметра NLS_LANG необходима для правильного преобразования данных. Набор символов, заданный параметром NLS_LANG, должен отражать настройку операционной системы клиента. Правильная установка NLS_LANG обеспечивает правильное преобразование из кодировки символов клиентской операционной системы в набор символов базы данных. Если эти настройки совпадают, Oracle предполагает, что отправляемые или получаемые данные закодированы в том же наборе символов, что и набор символов базы данных, поэтому проверка или преобразование набора символов могут не выполняться. Это может привести к повреждению данных, если потребуется преобразование.
Во время преобразования из одного набора символов в другой Oracle ожидает, что данные на стороне клиента будут закодированы в наборе символов, заданном параметром NLS_LANG. Если вы поместите в строку другие значения (например, с помощью функций CHR или CONVERT SQL), то значения могут быть повреждены при отправке в базу данных, поскольку они не преобразованы должным образом. Если вы правильно сконфигурировали среду и если набор символов базы данных поддерживает весь репертуар символьных данных, которые могут быть введены в базу данных, вам не нужно изменять текущий набор символов базы данных. Однако, если ваше предприятие становится более глобальным и вам необходимо поддерживать дополнительные символы или новые языки, вам может потребоваться выбрать набор символов с более широким репертуаром символов. Корпорация Oracle рекомендует в таких случаях использовать базы данных и типы данных Unicode.
Справочник Oracle Database SQL для получения дополнительной информации о функциях CHR и CONVERT SQL
Кодировка ASCII
Таблица 2-2 показывает, как кодируется символ ASCII. Заголовки строк и столбцов обозначают шестнадцатеричные цифры. Чтобы найти закодированное значение символа, прочитайте номер столбца, за которым следует номер строки. Например, кодовое значение символа A равно 0x41.
Дополнительную информацию можно найти в нашем вводном руководстве по HTML и CSS для маркетологов.
Правда в том, что даже такая простая вещь, как текст, требует хорошо скоординированной, четко определенной системы для отображения в веб-браузерах. В этом посте я объясню основы одной технологии, центральной для текста в Интернете, UTF-8. Мы изучим основы хранения и кодирования текста и обсудим, как это помогает размещать привлекательные слова на вашем сайте.
Прежде чем мы начнем, вы должны быть знакомы с основами HTML и готовы погрузиться в несложные компьютерные науки.
Что такое UTF-8?
UTF-8 расшифровывается как «Формат преобразования Unicode — 8 бит». Нам это пока не поможет, поэтому давайте вернемся к основам.
Двоичный файл: как компьютеры хранят информацию
Для хранения информации компьютеры используют двоичную систему. В двоичном формате все данные представлены в виде последовательностей 1 и 0. Основной единицей двоичного кода является бит, представляющий собой одну единицу или 0. Следующая по величине единица двоичного кода, байт, состоит из 8 бит. Пример байта: «01101011».
Каждый цифровой объект, с которым вы когда-либо сталкивались, — от программного обеспечения до мобильных приложений, веб-сайтов и историй в Instagram — построен на этой системе байтов, которые связаны друг с другом таким образом, который имеет смысл для компьютеров. Когда мы говорим о размерах файлов, мы имеем в виду количество байтов. Например, килобайт — это примерно тысяча байтов, а гигабайт — примерно миллиард байтов.
Текст — это один из многих ресурсов, которые хранятся и обрабатываются компьютерами. Текст состоит из отдельных символов, каждый из которых представлен в компьютере строкой битов. Эти строки собираются для формирования цифровых слов, предложений, абзацев, любовных романов и так далее.
ASCII: преобразование символов в двоичные
Американский стандартный код для обмена информацией (ASCII) был ранней стандартизированной системой кодирования текста. Кодирование — это процесс преобразования символов человеческого языка в двоичные последовательности, которые могут обрабатываться компьютером.
Библиотека ASCII включает все прописные и строчные буквы латинского алфавита (A, B, C...), все цифры от 0 до 9 и некоторые распространенные символы (такие как /, ! и ?). Каждому из этих символов присваивается уникальный трехзначный код и уникальный байт.
В таблице ниже показаны примеры символов ASCII с соответствующими кодами и байтами.
Точно так же, как символы объединяются в слова и предложения в языке, двоичный код делает то же самое в текстовых файлах. Итак, предложение «Быстрая коричневая лиса перепрыгивает через ленивую собаку». представленный в двоичном формате ASCII, будет:
Это мало что значит для нас, людей, но для компьютера это хлеб с маслом.
Количество символов, которые может представлять ASCII, ограничено количеством доступных уникальных байтов, поскольку каждый символ получает один байт. Если вы посчитаете, то обнаружите, что существует 256 различных способов сгруппировать восемь единиц и нулей вместе. Это дает нам 256 различных байтов или 256 способов представления символа в ASCII. Когда в 1960 году была введена ASCII, это было нормально, поскольку разработчикам требовалось всего 128 байт для представления всех нужных им английских букв и символов.
Но по мере глобального распространения вычислительной техники компьютерные системы стали хранить текст на других языках, помимо английского, многие из которых использовали символы, отличные от ASCII. Были созданы новые системы для сопоставления других языков с одним и тем же набором из 256 уникальных байтов, но наличие нескольких систем кодирования было неэффективным и запутанным. Разработчикам требовался лучший способ кодирования всех возможных символов в одной системе.
Юникод: способ хранения всех символов
Введите Unicode, систему кодирования, которая решает проблему пробелов ASCII. Как и в ASCII, в Unicode каждому символу присваивается уникальный код, называемый кодовой точкой. Однако более сложная система Unicode может создавать более миллиона кодовых точек, чего более чем достаточно для учета каждого символа любого языка.
Юникод теперь является универсальным стандартом для кодирования всех человеческих языков. И да, он даже включает смайлики.
Ниже приведены некоторые примеры текстовых символов и соответствующие им кодовые точки. Каждая кодовая точка начинается с «U» для «Unicode», за которой следует уникальная строка символов для представления символа.
Если вы хотите узнать, как генерируются кодовые точки и что они означают в Unicode, ознакомьтесь с этим подробным объяснением.
Итак, теперь у нас есть стандартизированный способ представления каждого символа, используемого каждым человеческим языком, в одной библиотеке. Это решает проблему множественных систем маркировки для разных языков — любой компьютер на Земле может использовать Unicode.
Однако Unicode сам по себе не хранит слова в двоичном виде. Компьютерам нужен способ перевода Unicode в двоичный код, чтобы его символы можно было хранить в текстовых файлах. Здесь на помощь приходит кодировка UTF-8.
UTF-8: последняя часть головоломки
UTF-8 – это система кодирования Unicode. Он может преобразовать любой символ Unicode в соответствующую уникальную двоичную строку, а также может преобразовать двоичную строку обратно в символ Unicode. В этом смысл «UTF» или «формата преобразования Unicode».
Помимо UTF-8, для Unicode существуют и другие системы кодирования, но UTF-8 уникальна, поскольку представляет символы в однобайтовых блоках. Помните, что один байт состоит из восьми битов, отсюда и «-8» в его имени.
В частности, UTF-8 преобразует кодовую точку (которая представляет один символ в Unicode) в набор от одного до четырех байтов. Первые 256 символов в библиотеке Unicode, включая символы, которые мы видели в ASCII, представлены как один байт. Символы, которые появляются позже в библиотеке Unicode, кодируются как двухбайтовые, трехбайтовые и, возможно, четырехбайтовые двоичные единицы.
Ниже приведена та же таблица символов, что и выше, с выводом UTF-8 для каждого добавленного символа. Обратите внимание, что некоторые символы представлены одним байтом, в то время как другие используют больше.
Почему UTF-8 преобразовывает одни символы в один байт, а другие — в четыре байта? Короче, для экономии памяти. Используя меньше места для представления более распространенных символов (например, символов ASCII), UTF-8 уменьшает размер файла, позволяя использовать гораздо большее количество менее распространенных символов. Эти менее распространенные символы закодированы в два или более байта, но это нормально, если они хранятся экономно.
Пространственная эффективность — ключевое преимущество кодировки UTF-8. Если бы вместо этого каждый символ Unicode был представлен четырьмя байтами, текстовый файл, написанный на английском языке, был бы в четыре раза больше по размеру того же файла, закодированного с помощью UTF-8.
Еще одним преимуществом кодировки UTF-8 является ее обратная совместимость с ASCII.Первые 128 символов в библиотеке Unicode совпадают с символами в библиотеке ASCII, и UTF-8 переводит эти 128 символов Unicode в те же двоичные строки, что и ASCII. В результате UTF-8 может без проблем преобразовать текстовый файл, отформатированный в ASCII, в удобочитаемый текст.
Символы UTF-8 в веб-разработке
UTF-8 – это наиболее распространенный метод кодировки символов, используемый сегодня в Интернете, а также набор символов по умолчанию для HTML5. Более 95% всех веб-сайтов, включая ваш собственный, хранят символы таким образом. Кроме того, распространенные методы передачи данных через Интернет, такие как XML и JSON, кодируются в соответствии со стандартами UTF-8.
Поскольку теперь это стандартный метод кодирования текста в Интернете, все страницы вашего сайта и базы данных должны использовать кодировку UTF-8. Система управления контентом или конструктор веб-сайтов по умолчанию сохраняют ваши файлы в формате UTF-8, но все же рекомендуется убедиться, что вы придерживаетесь этой рекомендации.
Текстовые файлы, закодированные с помощью UTF-8, должны указывать это программному обеспечению, которое их обрабатывает. В противном случае программное обеспечение не сможет правильно преобразовать двоичный файл обратно в символы. В файлах HTML вы можете увидеть строку кода, подобную следующей, вверху:
Это сообщает браузеру, что HTML-файл закодирован в UTF-8, чтобы браузер мог преобразовать его обратно в разборчивый текст.
UTF-8 и UTF-16
Как я уже упоминал, UTF-8 — не единственный метод кодирования символов Unicode. Существует также UTF-16. Эти методы различаются количеством байтов, необходимых для хранения символа. UTF-8 кодирует символ в двоичную строку из одного, двух, трех или четырех байтов. UTF-16 кодирует символ Юникода в строку из двух или четырех байтов.
Это различие очевидно из их имен. В UTF-8 наименьшее двоичное представление символа составляет один байт или восемь бит. В UTF-16 наименьшее двоичное представление символа составляет два байта или шестнадцать бит.
И UTF-8, и UTF-16 могут преобразовывать символы Unicode в двоичные файлы, удобные для компьютера, и обратно. Однако они не совместимы друг с другом. Эти системы используют разные алгоритмы для преобразования кодовых точек в двоичные строки, поэтому двоичный вывод для любого заданного символа будет выглядеть по-разному при использовании обоих методов:
Кодировка UTF-8 предпочтительнее UTF-16 на большинстве веб-сайтов, поскольку она использует меньше памяти. Напомним, что UTF-8 кодирует каждый символ ASCII всего одним байтом. UTF-16 должен кодировать эти же символы двумя или четырьмя байтами. Это означает, что текстовый файл на английском языке, закодированный с помощью UTF-16, будет как минимум вдвое больше, чем тот же файл, закодированный с помощью UTF-8.
UTF-16 эффективнее, чем UTF-8, только на некоторых веб-сайтах, отличных от английского. Если веб-сайт использует язык с более ранними символами в библиотеке Unicode, UTF-8 будет кодировать все символы как четыре байта, тогда как UTF-16 может кодировать многие из тех же символов только как два байта. Тем не менее, если ваши страницы заполнены буквами ABC и 123, придерживайтесь UTF-8.
Расшифровка мира кодировки UTF-8
Это было много слов о словах, так что давайте подытожим то, что мы рассмотрели:
- Компьютеры хранят данные, включая текстовые символы, в двоичном формате (1 и 0).
- ASCII был одним из первых способов кодирования или преобразования символов в двоичный код, чтобы компьютеры могли их хранить. Однако в ASCII недостаточно места для представления нелатинских символов и чисел в двоичном формате.
- Решением этой проблемы стал Unicode. Unicode присваивает уникальный «код» каждому символу в любом человеческом языке.
- UTF-8 — это метод кодировки символов Unicode. Это означает, что UTF-8 берет кодовую точку для данного символа Unicode и переводит ее в двоичную строку. Он также делает обратное, читая двоичные цифры и преобразовывая их обратно в символы.
- В настоящее время UTF-8 является самым популярным методом кодирования в Интернете, поскольку он может эффективно хранить текст, содержащий любой символ.
- UTF-16 — это еще один метод кодирования, но он менее эффективен для хранения текстовых файлов (за исключением тех, которые написаны на некоторых языках, отличных от английского).
Перевод Unicode — это не то, о чем большинству из нас нужно думать при просмотре или разработке веб-сайтов, и именно в этом суть — создать единую систему обработки текста, которая работает для всех языков и веб-браузеров. Если он работает хорошо, вы этого не заметите.
Но если вы обнаружите, что страницы вашего веб-сайта занимают слишком много места или если ваш текст замусорен символами ▢s и �s, пришло время применить ваши новые знания UTF-8 на практике.
Несмотря на то, что UltraEdit и UEStudio включают обработку файлов и символов Unicode, необходимо убедиться, что редактор правильно настроен для обработки отображения данных Unicode. В этом руководстве мы рассмотрим некоторые основы данных в кодировке Unicode, а также способы их просмотра и обработки в UltraEdit.
Краткий обзор Unicode
Чтобы понять, как работает Unicode, нужно сначала понять, как работает кодировка. Любой простой текстовый файл, содержащий данные, который вы открываете и редактируете в UltraEdit, отображается с использованием кодировки. Проще говоря, кодирование — это то, как необработанные двоичные данные файла (0 и 1, составляющие файл на диске) интерпретируются и отображаются в редакторе в виде разборчивого текста, которым можно манипулировать с помощью клавиатуры. Вы можете думать о кодировании как о типе «кольца декодера» для языка кода. Поскольку мы знаем, что все на нашем компьютере состоит из 0 и 1 (вспомните Матрицу), вы можете наглядно представить, как работает кодирование, просмотрев следующую диаграмму.
Юникод — это кодировка, разработанная много лет назад умными разработчиками с целью сопоставления большинства письменных знаков мира с единым набором кодировок. Практическая выгода от этой цели заключается в том, что любой пользователь в любом месте может просматривать китайские сценарии, английские буквенно-цифровые символы или русский и арабский текст — все в одном файле и без необходимости вручную возиться с кодировкой (кодовой страницей) для каждого конкретного текста. . До появления Unicode вам, вероятно, приходилось выбирать разные кодовые страницы для просмотра каждого скрипта, если скрипт даже имел кодовую страницу и шрифт, который ее поддерживал, и вы не могли просматривать несколько языков/скриптов в одном файле вообще.
Тим Брей в своей статье "О достоинствах Unicode" объясняет Unicode простыми словами:
Основы Unicode на самом деле довольно просты. Он определяет большое (и постоянно растущее) количество символов — чуть более 100 000, когда я последний раз проверял. Каждый символ получает имя и кодовую точку, например, ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА A — 0041, а ТИБЕТСКИЙ СЛОГ OM — 0F00. Unicode включает таблицу полезных свойств символов, таких как «это нижний регистр», «это число» или «это знак препинания».
(Примечание. По состоянию на 2 ноября 2018 года, обновление этой подсказки, в Unicode ровно 137 374 символа.)
Помня об этом, обновленная диаграмма работы кодировки Unicode показана ниже:
Каждая кодировка работает так же, как показано на диаграмме выше, но каждая кодировка (обычно) дает разные результаты того, что отображается в редакторе. Юникод — это очень надежная кодировка, которая отображает большинство языков, доступных для записи в современном мире.
Разница между UTF-8, UTF-16 и т. д.
Поскольку Unicode включает сотни тысяч символов, для каждого символа требуется несколько байтов. Почему? Ну, как вы, возможно, уже знаете, в мире компьютеров один байт состоит из 8 бит. Бит — это самая основная и самая маленькая часть электронных данных, которая может быть либо 0, либо 1 (или «выкл.» / «вкл.»). Это означает, что один байт может быть одной из 256 возможных комбинаций битов. Это означает, что вы можете поддерживать только до 256 символов с кодировкой, которая использует один байт для каждого из этих символов. Очевидно, вам потребуется экспоненциально больше комбинаций, чем 256, чтобы поддерживать все символы в мире.
Чтобы выполнить это требование, разработчики Unicode внедрили двухбайтовую систему символов, но даже она не обеспечивала достаточно возможных комбинаций для всех символов мира! Но решить эту проблему было не так просто, как просто увеличить его до трех или четырех байтов на символ из-за соображений памяти и пространства - если каждый символ в обычном текстовом файле требует 4 байта дискового пространства (или места в памяти, если он загружается в память), вы, по существу, вчетверо увеличиваете объем памяти, который требуется для хранения данных! Это совсем неэффективно.
Кроме того, UTF-8 по-прежнему включает набор символов Unicode, но его система хранения символов отличается и улучшена по сравнению с моделью UTF-16 "каждый символ получает 16 бит". UTF-8 присваивает разным символам разное количество байтов — один символ может использовать только один байт (8 бит), а другой — четыре. Наиболее часто используемым символам были назначены однобайтовые и двухбайтовые комбинации, что означает, что для большинства людей размер данных не станет слишком большим при использовании UTF-8.
Единственным недостатком этого является то, что системе требуется больше вычислительной мощности для интерпретации данных, закодированных в UTF-8, поскольку не каждый символ представлен одним и тем же числом байтов. Но эта дополнительная обработка практически не влияет на общую производительность.
Существуют и другие кодировки Unicode, такие как UTF-32 и UTF-7, но UTF-8 — самый популярный и широко используемый на сегодняшний день формат Unicode.Большинство баз данных SQL и веб-сайтов, которые вы видите, кодируются в UTF-8, и фактически в 2008 году Google заявил, что UTF-8 стала наиболее распространенной кодировкой для файлов HTML. Поэтому, если вы спросите нас, мы также рекомендуем формат кодировки UTF-8 при работе с Unicode в UltraEdit и UEStudio!
Для получения дополнительной информации о Unicode прочитайте следующие статьи:
И, конечно же, обязательно посетите официальный сайт Unicode для получения более подробной информации и обновлений Unicode.
Настройте UltraEdit для правильного открытия файлов Unicode
Ого! Теперь, когда мы разобрались с историей и основами Unicode, как нам настроить UltraEdit для обработки текстовых файлов Unicode?
Кодировка по умолчанию (для новых файлов и файлов, открытых при сбое автоматического обнаружения)
Этот параметр позволяет установить кодировку по умолчанию для новых файлов, а также кодировку, которую UltraEdit должен выбрать, если не может автоматически определить кодировку, которая изначально использовалась для создания файла. Другими словами, что UltraEdit должен «предполагать» в файле, если он не может понять это иначе? Если вы много работаете с данными в формате Unicode, мы рекомендуем установить значение UTF-8. Помните, что стандартом де-факто для Unicode является кодировка UTF-8, и все больше и больше вычислительных систем движется в этом направлении.
Удивительная особенность UTF-8 заключается в том, что ее первые 256 символов побайтно совпадают с 256 символами самого популярного набора символов ASCII (ANSI 1252). Так что, если у вас есть файл, отличный от Unicode, с обычными символами ASCII, который UltraEdit (или любое другое приложение) интерпретирует как UTF-8, вы, вероятно, даже не сможете заметить разницу.
Автоматическое определение кодировки
Убедитесь, что этот параметр установлен, иначе UltraEdit не будет ничего пытаться автоматически определять кодировку открываемых файлов. Это означает, что файлы с явной кодировкой UTF-8 или UTF-16 будут выглядеть как зашифрованный неразборчивый текст с отключенной опцией.
Копирование и вставка данных Unicode в UltraEdit
Возможно, вы захотите скопировать и вставить данные Unicode из внешнего источника в новый файл в UltraEdit. Во многих более ранних версиях UltraEdit, если вы пробовали это, вы, возможно, видели, что символы были вставлены в UltraEdit как мусорные символы, квадратики, вопросительные знаки или что-то совершенно другое, чем вы ожидали. Это произошло потому, что новые файлы в UltraEdit по умолчанию создаются в кодировке ASCII, а не в кодировке Unicode/UTF-8. Обратитесь к нашей диаграмме выше; шестнадцатеричные данные верны для символов Unicode, но из-за неправильной установки кодировки результат будет неверным.
Хорошей новостью является то, что, начиная с UltraEdit v24.00/UEStudio 17.00, UltraEdit теперь определяет, вставляются ли символы Unicode в файл, отличный от Unicode, и предлагает вам преобразовать файл перед выполнением вставки.
Знакомство со спецификациями (маркеры порядка байтов)
Маркер порядка байтов (сокращенно BOM) – это последовательность байтов в самом начале файла, которая используется в качестве "флажка" или "сигнатуры" для кодирования и/или шестнадцатеричного порядка байтов, который следует использовать для файл. Для данных в кодировке UTF-8 это обычно три байта (представленные в шестнадцатеричном формате) EF BB BF . Спецификация также сообщает редактору, в каком формате находятся данные Unicode: с прямым порядком байтов или прямым порядком байтов. Данные Unicode с прямым порядком байтов просто означают, что самый старший шестнадцатеричный байт хранится в памяти вашего компьютера первым, а байт с прямым порядком байтов хранится в памяти последним. Спецификации не всегда необходимы для отображения данных Unicode, но они могут избавить разработчиков от головной боли при написании и создании приложений. Спецификация — это одна из первых вещей, которую UltraEdit ищет при попытке определить, какую кодировку использует файл при его открытии.
Если вы открываете файлы в UltraEdit и видите эти «мусорные» символы в начале файла, это означает, что вы неправильно установили вышеупомянутые параметры обнаружения Unicode. И наоборот, если вы сохраняете файлы Unicode, которые другие открывают с помощью других программ, отображающих эти ненужные символы, то другие программы либо не могут, либо не настроены для правильной обработки спецификаций и данных Unicode.
Дополнительная информация о спецификациях и различных форматах байтов/UTF доступна на официальном веб-сайте Unicode.
Настройка UltraEdit для сохранения данных Unicode/UTF-8 со спецификациями
Преобразование файлов Unicode/UTF-8 в файлы ASCII
Вы можете столкнуться с ситуацией, когда вам нужно преобразовать файл, закодированный в формате Unicode, в обычный ASCII. Возможно, у вас есть какая-то старая программа или приложение, не предназначенное для работы с кодировками Unicode. Хорошей новостью является то, что UltraEdit позволяет легко конвертировать файлы на основе Unicode в обычные файлы ASCII. Это очень простой процесс. Все, что вам нужно сделать, это перейти на вкладку "Дополнительно" и щелкнуть раскрывающийся список "Конверсии", а затем выбрать вариант преобразования, который соответствует тому, что вы хотите сделать.
Например, если у вас есть файл UTF-8, содержащий японские символы, которые вы хотите преобразовать в ASCII, выберите в раскрывающемся списке "UTF-8 в ASCII".
После того, как вы выберете этот параметр, вы, скорее всего, увидите запрос на выбор кодовой страницы для нового формата ASCII. Убедитесь, что вы назначили правильную кодовую страницу, соответствующую типу символов в вашем файле! Если вы этого не сделаете, вы можете повредить свои данные. В этом примере, поскольку мы работаем с японским языком, мы можем выбрать кодовую страницу 932, которая является одной из наиболее распространенных кодовых страниц для японского языка.
После того, как мы нажмем OK, чтобы установить кодовую страницу, мы должны увидеть вкладку файла с указанием несохраненных изменений в файле, но мы не должны заметить никакой разницы в отображении файла. Базовая кодировка японских символов изменилась с UTF-8 на ASCII (с использованием кодовой страницы 932 для интерпретации последовательностей байтов), но символы по-прежнему выглядят точно так же! Мы также можем убедиться в этом, проверив кодировку в строке состояния.
Вы также можете конвертировать другим способом; например, из ASCII в UTF-8. В этом случае вам не нужно выбирать кодовую страницу, так как Unicode устраняет необходимость в кодовых страницах, поскольку он содержит все возможные символы.
Подводя итог.
Юникод — это очень сложная система с тысячами символов, но она была усовершенствована и отполирована, чтобы каждый мог легко получить к ней доступ и использовать ее. Мир отреагировал, перейдя к UTF-8 в качестве стандарта для вычислений. Чтобы идти в ногу с технологиями, убедитесь, что вы используете текстовый редактор, такой как UltraEdit, который может использовать мощь и гибкость Unicode!
Как правило, вы можете обмениваться текстовыми файлами, не беспокоясь о том, как хранится текст. Однако если вы делитесь текстовыми файлами с людьми, которые работают на других языках, загружаете текстовые файлы через Интернет или делитесь текстовыми файлами с другими компьютерными системами, вам может потребоваться выбрать стандарт кодирования при открытии или сохранении файла.
Когда вы или кто-то другой открывает текстовый файл в Microsoft Word или в другой программе — возможно, на компьютере с системным программным обеспечением на языке, отличном от языка, который использовался для создания файла — стандарт кодирования помогает в этом. программа определяет, как представить текст, чтобы он был удобочитаемым.
Что вы хотите сделать?
Знакомство с кодировкой текста
То, что кажется вам текстом на экране, на самом деле сохраняется в виде числовых значений в текстовом файле. Ваш компьютер переводит числовые значения в видимые символы. Это достигается с помощью стандарта кодирования.
Стандарт кодирования — это схема нумерации, при которой каждому текстовому символу в наборе символов присваивается числовое значение. Набор символов может включать буквы алфавита, цифры и другие символы. Разные языки обычно состоят из разных наборов символов, поэтому существует множество различных стандартов кодирования для представления наборов символов, используемых в разных языках.
Разные стандарты кодирования для разных алфавитов
Стандарт кодирования, сохраненный в текстовом файле, предоставляет информацию, необходимую вашему компьютеру для отображения текста на экране. Например, в кодировке кириллицы (Windows) символ Й имеет числовое значение 201. Когда вы открываете файл, содержащий этот символ, на компьютере, использующем кодировку кириллицы (Windows), компьютер считывает числовое значение 201 и отображает Й на экране.
Однако, если вы откроете тот же файл на компьютере, использующем другую кодировку, компьютер отобразит любой символ, соответствующий числовому значению 201 в стандарте кодировки, который компьютер использует по умолчанию.Например, если на вашем компьютере используется западноевропейский (Windows) стандарт кодировки, символ в исходном кириллическом файле будет отображаться как É, а не Й, поскольку в западноевропейской (Windows) кодировке значение 201 отображается на É.< /p>
Юникод: единый стандарт кодирования для многих алфавитов
Чтобы избежать проблем с кодированием и декодированием текстовых файлов, вы можете сохранять файлы в кодировке Unicode. Юникод поддерживает большинство наборов символов для всех языков, которые сегодня широко используются пользователями компьютеров.
Поскольку Word основан на Unicode, Word автоматически сохраняет файлы, закодированные как Unicode. Вы можете открывать и читать файлы в кодировке Unicode на своем англоязычном компьютере независимо от языка текста. Аналогичным образом, когда вы используете англоязычную систему для сохранения файлов в кодировке Unicode, файл может содержать символы, не встречающиеся в западноевропейских алфавитах, например символы греческого, кириллического, арабского или японского языков.
Выберите стандарт кодирования при открытии файла
Если при открытии файла текст отображается искаженным, в виде вопросительных знаков или прямоугольников, возможно, Word не точно определил стандарт кодирования текста в файле. Вы можете указать стандарт кодирования, который можно использовать для отображения (декодирования) текста.
Перейдите на вкладку "Файл".
Нажмите "Параметры".
Нажмите "Дополнительно".
Прокрутите до раздела "Общие" и установите флажок "Подтверждать преобразование формата файла при открытии".
Примечание. Если этот флажок установлен, Word отображает диалоговое окно «Преобразовать файл» каждый раз, когда вы открываете файл в формате, отличном от формата Word (форматы Word включают .doc, .dot, .docx, .docm, . файлы dotx или .dotm). Если вы часто работаете с такими файлами, но редко хотите выбирать стандарт кодирования, не забудьте отключить этот параметр, чтобы это диалоговое окно не открывалось без необходимости.
Закройте и снова откройте файл.
В диалоговом окне "Преобразовать файл" выберите "Закодированный текст".
В диалоговом окне "Преобразование файла" выберите "Другая кодировка", а затем выберите нужный стандарт кодировки из списка.
Вы можете предварительно просмотреть текст в области предварительного просмотра, чтобы проверить, читается ли весь текст в выбранном стандарте кодирования.
Если почти весь текст выглядит одинаково (например, все прямоугольники или все точки), возможно, не установлен шрифт, необходимый для отображения символов. Если нужный вам шрифт недоступен, вы можете установить дополнительные шрифты.
Чтобы установить дополнительные шрифты, выполните следующие действия:
В Microsoft Windows нажмите кнопку "Пуск" и выберите "Панель управления".
Выполните одно из следующих действий:
В Windows 7
На панели управления нажмите "Удалить программу".
В списке программ щелкните список для Microsoft Office или Microsoft Word, в зависимости от того, установили ли вы Word как часть Office или как отдельную программу, а затем нажмите Изменить.
В Windows Vista
На панели управления нажмите "Удалить программу".
В списке программ щелкните список для Microsoft Office или Microsoft Word, в зависимости от того, установили ли вы Word как часть Office или как отдельную программу, а затем нажмите Изменить.
В Microsoft Windows XP
На панели управления нажмите "Установка и удаление программ".
В поле Установленные программы щелкните список Microsoft Office или Microsoft Word, в зависимости от того, установили ли вы Word как часть Office или как отдельную программу, а затем нажмите Изменить.
В разделе "Изменить установку Microsoft Office" нажмите "Добавить или удалить компоненты", а затем нажмите "Продолжить".
В разделе «Параметры установки» разверните «Общие функции Office», а затем разверните «Международная поддержка».
Выберите нужный набор шрифтов, нажмите стрелку рядом с выбором и выберите «Запустить с моего компьютера».
Совет. Когда вы открываете закодированный текстовый файл, Word применяет шрифты, указанные в диалоговом окне "Параметры веб-сайта". (Чтобы открыть диалоговое окно «Параметры веб-страницы», нажмите кнопку Microsoft Office, щелкните «Параметры Word», а затем нажмите «Дополнительно». В разделе «Общие» нажмите «Параметры веб-сайта».) Вы можете выбрать параметры на вкладке «Шрифты» в диалоговом окне «Параметры веб-сайта», чтобы настроить шрифт для каждого набора символов.
Выберите стандарт кодирования при сохранении файла
Если вы не выберете стандарт кодировки при сохранении файла, Word кодирует файл как Unicode. Обычно можно использовать кодировку Unicode по умолчанию, поскольку она поддерживает большинство символов большинства языков.
Если ваш документ будет открыт в программе, не поддерживающей Unicode, вы можете выбрать стандарт кодирования, соответствующий стандарту целевой программы. Например, Unicode позволяет создать документ на традиционном китайском языке в англоязычной системе. Однако, если документ будет открыт в программе на традиционном китайском языке, которая не поддерживает Unicode, вы можете сохранить документ в традиционной китайской кодировке (Big5).Когда документ открывается в программе на традиционном китайском языке, весь текст отображается правильно.
Примечание. Поскольку Unicode является наиболее полным стандартом, сохранение текста в любой другой кодировке может привести к тому, что некоторые символы больше не будут отображаться. Например, документ, закодированный в Unicode, может содержать текст на иврите и кириллице. Если этот документ сохранен в кодировке кириллицы (Windows), текст на иврите больше не будет отображаться, а если документ сохранен в кодировке на иврите (Windows), текст на кириллице больше не будет отображаться.
Если вы выберете стандарт кодирования, который не поддерживает символы, которые вы использовали в файле, Word помечает красным цветом те символы, которые не может быть сохранен. Вы можете предварительно просмотреть текст в выбранном вами стандарте кодирования перед сохранением файла.
Текст, отформатированный шрифтом Symbol или кодами полей, удаляется из файла при сохранении файла как закодированного текста.
Выберите стандарт кодирования
Перейдите на вкладку "Файл".
Нажмите "Сохранить как".
Если вы хотите сохранить файл в другой папке, найдите и откройте ее.
В поле Имя файла введите новое имя файла.
В поле "Тип файла" выберите "Обычный текст".
Нажмите "Сохранить".
Если появится диалоговое окно средства проверки совместимости Microsoft Office Word, нажмите "Продолжить".
В диалоговом окне "Преобразование файла" выберите вариант стандарта кодирования, который вы хотите использовать:
Чтобы использовать стандарт кодирования по умолчанию для вашей системы, нажмите Windows (по умолчанию).
Чтобы использовать стандарт кодирования MS-DOS, щелкните MS-DOS.
Чтобы выбрать конкретный стандарт кодирования, нажмите «Другая кодировка», а затем выберите нужный стандарт кодирования из списка. Вы можете предварительно просмотреть текст в области предварительного просмотра, чтобы проверить, читается ли весь текст в выбранном стандарте кодирования.
Примечание. Размер диалогового окна "Преобразование файла" можно изменить, чтобы можно было просмотреть больше документов.
Если вы получили сообщение "Текст, выделенный красным, не будет правильно сохранен в выбранной кодировке", попробуйте выбрать другую кодировку или установите флажок "Разрешить замену символов".
Если вы разрешаете замену символов, Word заменяет символ, который не может быть отображен, на ближайший эквивалентный символ в выбранной вами кодировке. Например, три точки заменяют многоточие, а прямые кавычки заменяют фигурные кавычки.
Если в выбранной вами кодировке нет эквивалентного символа для символа, отмеченного красным, символ, отмеченный красным, будет сохранен как символ вне контекста, например вопросительный знак.
Если документ будет открыт в программе, которая не переносит текст с одной строки на другую, вы можете включить в документ жесткие разрывы строк, установив флажок Вставить разрывы строк, а затем указав, хотите ли вы, чтобы строки разрывы должны быть обозначены символом возврата каретки (CR), перевода строки (LF) или и тем, и другим в поле Конец строки с помощью поля.
Поиск стандартов кодирования, доступных в Word
Word распознает несколько стандартов кодирования и поддерживает стандарты кодирования, поставляемые с системным программным обеспечением на вашем компьютере.
В следующем списке систем письма показаны стандарты кодирования (также называемые кодовыми страницами), связанные с каждой системой письма.
Целевая аудитория: авторы контента, пользователи и все, кто не знает, что такое кодировка символов, и хочет получить краткую информацию о том, как она на них влияет.
Вопрос
Что такое кодировка символов и зачем мне это?
Ответить
Во-первых, какое мне дело?
Если вы используете какой-либо другой текст, кроме самого простого английского текста, люди могут не прочитать созданный вами контент, пока вы не скажете, какую кодировку символов вы использовали.
Например, вы можете сделать так, чтобы текст выглядел так:
но на самом деле это может выглядеть так:
Отсутствие информации о кодировке символов не только ухудшает читаемость отображаемого текста, но и может означать, что ваши данные не могут быть найдены поисковой системой или надежно обработаны машинами рядом других способов.
Так что же такое кодировка символов?
Слова и предложения в тексте создаются из файлов . Примеры символов включают латинскую букву á, китайскую иероглифику 請 или иероглиф деванагари ह .
Возможно, вы не сможете увидеть некоторые символы на этой странице, потому что у вас нет необходимых шрифтов. Если вы нажмете на то место, где вы ожидали увидеть символ, вы перейдете к графической версии. Эта страница закодирована в UTF-8.
Символы, необходимые для определенной цели, группируются в (также называемые ). (Для однозначного обращения к символам каждый символ связан с числом, называемым .)
Символы хранятся в компьютере как один или несколько .
В принципе, вы можете визуализировать это, предположив, что все символы хранятся в компьютерах с использованием специального кода, подобного шифрам, используемым в шпионаже. A предоставляет ключ для разблокировки (т.е. взлома) кода. Это набор сопоставлений между байтами в компьютере и символами в наборе символов. Без ключа данные выглядят как мусор.
Этот вводящий в заблуждение термин часто используется для обозначения того, что на самом деле является кодировкой символов. Вы должны знать об этом использовании, но по возможности придерживайтесь термина кодировки символов.
Таким образом, когда вы вводите текст с помощью клавиатуры или каким-либо другим способом, кодировка символов сопоставляет выбранные вами символы с определенными байтами в памяти компьютера, а затем для отображения текста считывает байты обратно в символы.
К сожалению, существует множество различных наборов символов и кодировок, т.е. множество различных способов отображения между байтами, кодовыми точками и символами. В разделе «Дополнительная информация» для тех, кто интересуется, немного больше подробностей.
Однако в большинстве случаев вам не нужно знать подробности. Вам просто нужно быть уверенным, что вы прислушаетесь к советам в разделе Как это на меня повлияет? ниже.
Как в это вписываются шрифты?
A — это набор определений глифов, т.е. определения фигур, используемых для отображения символов.
После того как ваш браузер или приложение определит, с какими символами он имеет дело, он будет искать в шрифте глифы, которые можно использовать для отображения или печати этих символов. (Конечно, если информация о кодировке была неверной, она будет искать глифы для неправильных символов.)
Заданный шрифт обычно охватывает один набор символов или, в случае большого набора символов, такого как Unicode, только подмножество всех символов в наборе. Если в вашем шрифте нет глифа для определенного символа, некоторые браузеры или программные приложения будут искать отсутствующие глифы в других шрифтах в вашей системе (это будет означать, что глиф будет отличаться от окружающего текста, например, примечание о выкупе). ). В противном случае вы обычно увидите квадратную рамку, вопросительный знак или какой-либо другой символ. Например:
Как это влияет на меня?
В настоящее время как автор или разработчик контента вы всегда должны выбирать кодировку символов UTF-8 для своего контента или данных. Эта кодировка Unicode является хорошим выбором, потому что вы можете использовать кодировку одного символа для обработки любого символа, который вам может понадобиться. Это сильно упрощает дело. Использование Unicode во всей вашей системе также избавляет от необходимости отслеживать и преобразовывать различные кодировки символов.
Авторам контента необходимо выяснить, как объявить кодировку символов, используемую для формата документа, с которым они работают.
Обратите внимание, что простое объявление другой кодировки на вашей странице не изменит байты; вам также нужно сохранить текст в этой кодировке.
Разработчикам необходимо убедиться, что различные части системы могут взаимодействовать друг с другом, понимать, какие кодировки символов используются, и поддерживать все необходимые кодировки и символы. (В идеале вы должны использовать кодировку UTF-8 везде и избавитесь от этой проблемы.)
По приведенным ниже ссылкам можно найти дополнительную информацию по этим темам.
Дополнительная информация
В этом разделе содержится небольшая дополнительная информация о сопоставлении между байтами, кодовыми точками и символами для тех, кому это интересно. Не стесняйтесь просто перейти к разделу «Дополнительная литература».
Обратите внимание, что числа кодовых точек обычно выражаются в шестнадцатеричной системе счисления, т.е. основание 16. Например, 233 в шестнадцатеричной форме равно E9. Значения кодовой точки Unicode обычно записываются в форме U+00E9.
В наборе кодированных символов ISO 8859-1 (также известном как Latin1) значение десятичного кода для буквы é равно 233. Однако в ISO 8859-5 та же самая кодовая точка представляет кириллический символ щ .
Эти наборы символов содержат менее 256 символов и напрямую сопоставляют кодовые точки со значениями байтов, поэтому кодовая точка со значением 233 представлена одним байтом со значением 233. Обратите внимание, что только контекст определяет, будет ли этот байт представляет либо é, либо sch .
Есть и другие способы обработки символов из ряда сценариев. Например, с помощью набора символов Unicode вы можете представлять оба символа в одном наборе. На самом деле Unicode содержит в одном наборе, вероятно, все символы, которые вам когда-либо понадобятся. В то время как буква é по-прежнему представлена кодовой точкой 233, кириллический символ щ теперь имеет кодовую точку 1097.
В наши дни байты обычно состоят из 8 бит. Существует только 2 8 (т.е. 256) уникальных способов объединения 8 битов.
С другой стороны, 1097 — слишком большое число, чтобы его можно было представить одним байтом*. Итак, если вы используете кодировку символов для текста Unicode, называемую UTF-8, щ будет представлена двумя байтами.Однако значение кодовой точки не просто получается из значения двух соединенных вместе байтов — требуется более сложное декодирование.
Другие символы Юникода соответствуют одному, трем или четырем байтам в кодировке UTF-8.
Кроме того, обратите внимание, что буква é также представлена двумя байтами в UTF-8, а не одним байтом, который используется в ISO 8859-1. (Только символы ASCII кодируются одним байтом в UTF-8.)
UTF-8 — это наиболее широко используемый способ представления текста Unicode на веб-страницах, и вы всегда должны использовать UTF-8 при создании своих веб-страниц и баз данных. Но, в принципе, UTF-8 — это лишь один из возможных способов кодировки символов Юникода. Другими словами, одна кодовая точка в наборе символов Unicode может фактически отображаться в различные последовательности байтов, в зависимости от того, какая кодировка использовалась для документа. Кодовые точки Unicode могут быть сопоставлены с байтами с использованием любой из кодировок, называемых UTF-8, UTF-16 или UTF-32. Символ деванагари क с кодовой точкой 2325 (что равно 915 в шестнадцатеричном представлении) будет представлен двумя байтами при использовании кодировки UTF-16 (09 15), тремя байтами при использовании UTF-8 (E0 A4 95) или четырьмя байтами. байт с кодировкой UTF-32 (00 00 09 15).
Могут быть дополнительные сложности помимо описанных в этом разделе (например, порядок байтов и управляющие последовательности), но описанные здесь подробности показывают, почему важно, чтобы приложение, с которым вы работаете, знало, какая кодировка символов подходит для ваших данных. , и знает, как обращаться с этой кодировкой.
Дополнительная литература
Начинаете? Введение в наборы символов и кодировки — указывает на другие документы W3C, связанные с наборами символов и кодировками
Учебное пособие, Работа с кодировками символов в HTML и CSS. Советы по выбору кодировки, ее объявлению и другим темам, связанным с HTML и CSS.
Настройка кодировки в веб-приложениях для разработки — как заставить ваш редактор сохранять в другой кодировке список сред редактирования.
Читайте также: