Что такое кодировка файла

Обновлено: 21.11.2024

Source Insight может загружать и сохранять файлы, используя различные кодировки символов. По умолчанию Source Insight использует кодировку UTF-8 (Unicode).

Основы кодирования

Shift-JIS – это кодировка символов японского языка

Китайская Big5 — это кодировка традиционных китайских иероглифов

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

Юникод был разработан как унифицированная кодировка, которая может кодировать все символы. Однако сам Unicode может быть закодирован в нескольких вариантах, таких как UTF-8, UTF-16 и UTF-32.

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

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

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

Кодирование связано с файловыми буферами

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

Изменение кодировки по умолчанию

При первой установке Source Insight по умолчанию использует кодировку UTF-8 (Unicode). Однако если вы обычно работаете с файлами, использующими другую кодировку, например японскую Shift-JIS или китайскую (Big5), вам следует изменить кодировку по умолчанию.

Чтобы изменить кодировку по умолчанию, выберите «Параметры» > «Настройки: Файл» и измените значение параметра «Кодировка по умолчанию» . См. Параметры файла.

Настройка кодировки по умолчанию в настройках файла используется для интерпретации файлов при их открытии. Он также используется при создании нового файлового буфера (используя File > New ) и сохранении буфера в первый раз.

Если вы открываете файл с явной подписью UTF, известной как Byte-Order-Mark (BOM), то вместо формата по умолчанию используется формат UTF. Вы можете переопределить это с помощью команды «Файл» > «Обновить как кодировку».

Source Insight работает немного быстрее, если вы установите кодировку по умолчанию "UTF-8" или "UTF-8 с спецификацией".

Повторная загрузка файла с другой кодировкой

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

Чтобы перезагрузить уже открытый файл и использовать другую кодировку, выберите «Файл» > «Обновить как кодировку» . Выберите кодировку и нажмите кнопку «Загрузить». Если вы отредактировали файл перед его перезагрузкой, Source Insight попросит вас сначала сохранить файл, потому что перезагрузка файла с новой кодировкой сотрет ваши изменения, и это нельзя будет отменить. См.: Перезагрузить как кодировку.

Если вы хотите перезагрузить файл, в который вы внесли изменения, и хотите сохранить свои изменения, НЕ сохраняйте файл обратно поверх самого себя, поскольку это приведет к перезаписи файла и может привести к его повреждению. Вместо этого сохраните его в новый файл, выбрав «Файл» > «Сохранить как кодировку», и выберите формат UTF-8. После перезагрузки исходного файла вы можете сравнить различия между файлами и снова объединить ваши изменения.

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

Открытие файла с другой кодировкой

Если файл в данный момент не открыт и вы хотите открыть этот файл в определенной кодировке, выберите «Файл» > «Открыть как кодировку» . Выберите кодировку и нажмите кнопку «Открыть», чтобы выбрать файл. См.: Открыть как кодировку.

Это используется для открытия файла, который еще не открыт. Если файл уже открыт, вы должны использовать File > Reload As Encoding .

Сохранение файла с кодировкой

Чтобы сохранить файл в другой кодировке, выберите «Файл» > «Сохранить как кодировку» . Выберите нужную кодировку, затем нажмите кнопку Сохранить. См.: Сохранить как кодировку.

Сохранение файлов с использованием кодировки Unicode (например, UTF-8) – лучший способ избежать повреждения из-за неправильного декодирования или кодирования в будущем. Например, если вы загружаете файл, закодированный с помощью одной кодовой страницы, и сохраняете его с использованием другой кодовой страницы, это может привести к повреждению файла, поскольку некоторые символы не будут сопоставляться с символами новой кодовой страницы. Однако при сохранении с использованием кодировки Unicode символы будут отображены правильно. Кодировка UTF-8 является предпочтительной в Source Insight, поскольку для открытия и сохранения файлов требуется меньше преобразований.

Если вы открыли файл, и кажется, что текст искажен и он загружен с неправильной кодировкой, НЕ сохраняйте файл снова, используя Сохранить как кодировку . Это перезапишет файл и потенциально изменит его. Вместо этого выберите «Файл» > «Обновить как кодировку». См.: Перезагрузить как кодировку.

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

Когда вы или кто-то другой открывает текстовый файл в 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 распознает несколько стандартов кодирования и поддерживает стандарты кодирования, поставляемые с системным программным обеспечением на вашем компьютере.

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

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

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

Например, в Японии файлы, записанные в Microsoft Windows, обычно используют кодировку Shift_JIS (SJIS). Внутри Java всегда использует набор символов Unicode и кодировку UTF-16.

Тип параметра файла (текстовый или двоичный) можно указать с помощью:

Для двоичных данных используйте FileValueType.TYPE_BINARY .

Для текстовых файлов вы также можете указать кодировку данных. Спецификация необходима только в том случае, если ваши файлы содержат символы, не входящие в набор символов US-ASCII (стандартные 7-битные символы, используемые на всех компьютерах с Linux), и модель может работать на компьютерах, использующих другие наборы символов или кодировки. Если оба эти условия не выполняются, нет смысла устанавливать кодировку, поскольку текстовые файлы ASCII одинаковы во всех кодировках, а файл, записанный в кодировке компьютера по умолчанию, всегда можно правильно прочитать, используя кодировку компьютера по умолчанию.

Существует одна специальная кодировка «(Automatic Local)». Эта строка доступна в константе FileValueType.LOCAL_ENCODING. Автоматическая локальная кодировка является кодировкой по умолчанию, если она не задана специально, и указывает, что текст должен быть прочитан или записан в той кодировке, которую компьютер, выполняющий компонент, использует по умолчанию.

На самом деле существует две кодировки для параметра файла TYPE_TEXT: одна связана с обработчиком и копируется во время сопоставления параметров, а другая связана с локальным именем и не копируется во время сопоставления параметров. Если эти кодировки различаются, Isight преобразует файл из одного в другой при копировании данных в/из рабочего каталога. Кодировка обработчика задается методом setDataEncoding(String), а кодировка локального имени задается методом setReadWriteEncoding(String) . Например:

Этот параметр указывает, что данные в обработчике закодированы с использованием набора символов Shift JIS, но файл будет преобразован в кодировку компьютера по умолчанию при копировании файла в рабочий каталог.

Запустите Design Gateway.

Выберите «Настройки» в меню «Правка».

Появится диалоговое окно настроек.

Выберите параметр "Параметры" в левой части диалогового окна.

Установите флажок «Показать кодировку типа файла» на вкладке «Файлы» и нажмите «ОК», чтобы закрыть диалоговое окно «Настройки».

Перейдите на вкладку "Файлы" в Design Gateway.

Нажмите "Добавить параметр" и создайте параметр файла INPUT.

Выберите только что созданный параметр.

В области «Чтение из» в нижней части вкладки есть списки (помеченные как «Тип» и «Кодировка» ). Кнопка списка кодировок, вероятно, недоступна.

В списке Тип выберите Текст . Доступна кнопка Список кодировок.

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

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

Вопрос

Что такое кодировка символов и зачем мне это?

Ответить

Во-первых, какое мне дело?

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

Например, вы можете сделать так, чтобы текст выглядел так:

но на самом деле это может выглядеть так:

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

Так что же такое кодировка символов?

Слова и предложения в тексте создаются из файлов . Примеры символов включают латинскую букву á, китайскую иероглифику 請 или иероглиф деванагари ह .

Возможно, вы не сможете увидеть некоторые символы на этой странице, потому что у вас нет необходимых шрифтов. Если вы нажмете на то место, где вы ожидали увидеть символ, вы перейдете к графической версии. Эта страница закодирована в 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).

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

Дополнительная литература

Начинаете? Введение в наборы символов и кодировки — указывает на другие документы W3C, связанные с наборами символов и кодировками

Учебное пособие, Работа с кодировками символов в HTML и CSS. Советы по выбору кодировки, ее объявлению и другим темам, связанным с HTML и CSS.

Настройка кодировки в веб-приложениях для разработки — как заставить ваш редактор сохранять в другой кодировке список сред редактирования.

Дополнительную информацию можно найти в нашем вводном руководстве по 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. Компьютеры хранят данные, включая текстовые символы, в двоичном формате (1 и 0).
  2. ASCII был одним из первых способов кодирования или преобразования символов в двоичный код, чтобы компьютеры могли их хранить. Однако в ASCII недостаточно места для представления нелатинских символов и чисел в двоичном формате.
  3. Решением этой проблемы стал Unicode. Unicode присваивает уникальный «код» каждому символу в любом человеческом языке.
  4. UTF-8 — это метод кодировки символов Unicode. Это означает, что UTF-8 берет кодовую точку для данного символа Unicode и переводит ее в двоичную строку. Он также делает обратное, читая двоичные цифры и преобразовывая их обратно в символы.
  5. В настоящее время UTF-8 является самым популярным методом кодирования в Интернете, поскольку он может эффективно хранить текст, содержащий любой символ.
  6. UTF-16 — это еще один метод кодирования, но он менее эффективен для хранения текстовых файлов (за исключением тех, которые написаны на некоторых языках, отличных от английского).

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

Но если вы обнаружите, что страницы вашего веб-сайта занимают слишком много места или если ваш текст замусорен символами ▢s и �s, пришло время применить ваши новые знания UTF-8 на практике.

Читайте также: