Unicode.Краткий обзор—ArcGIS Help | ArcGIS Desktop
Unicode представляет собой систему кодирования символов, которая используется компьютерами для хранения и обмена текстовыми данными. В Unicode имеется уникальный номер (или кодовый знак) для каждого символа основных мировых систем письменности. В эту систему также включены технические символы, знаки пунктуации и многие другие символы, используемые в письменности.
Помимо того что Unicode является таблицей кодов символов, он также включает в себя алгоритмы для сопоставления и кодирования двусторонней письменности, например, арабской, а также спецификации для нормализации текстовых форм.
В данном разделе приводится общее описание Unicode. Для получения более полной информации и списка поддерживаемых языков, символы которых могут быть закодированы с помощью Unicode, см.Веб-сайт Unicode Consortium.
Кодовые знаки
Символы представляют собой единицы информации, которые приблизительно соответствуют единице текста в письменной форме естественного языка. Unicode определяет то, каким образом символы будут интерпретироваться, а не отображаться.
Образ символа (глиф), который отображается, или визуальное представление символа, является знаком, который выводится на экране монитора или распечатанной странице. В некоторых системах записи один символ может соответствовать нескольким глифам, или несколько символов может соответствовать одному глифу. Например, «ll» в испанском языке является одним глифом, но двумя символами: «l» и «l».
В Unicode символы преобразуются в кодовые знаки. Кодовые знаки представляют собой числа, которые назначаются Unicode Consortium для каждого символа в каждой системе записи. Кодовые знаки представляются в виде записи «U+» и четырех чисел и/или букв. Ниже приводятся примеры кодовых знаков для четырех разных символов: строчная l, строчная u с умляутом, бета и строчной e с акутом.
l = U+006C
u = U+00FC
= U+0392
e = U+00E9
Unicode содержит 1,114,112 кодовых значений; на настоящий момент времени, для них назначено более 96,000 символов.
Уровни
Кодовое пространство Unicode для символов разделено на 17 уровней, каждый из которых содержит 65,536 кодовых знаков.
Первым уровнем (plane) – plane 0 – является Basic Multilingual Plane (BMP). Большая часть наиболее используемых символов кодируются с помощью BMP, и на сегодняшний день это уровень, на котором закодировано больше всего символов. BMP содержит кодовые знаки для почти всех символов современных языков и многих специальных символов. В BMP существует порядка 6,300 неиспользуемых кодовых знаков. Они будут использованы для добавления большего числа символов в будущем.
Следующим уровнем (plane) – plane 1 – является Supplementary Multilingual Plane (SMP). SMP используется для кодирования древних символов, а также музыкальных и математических символов.
Кодирование символов
Кодирование символов определяет каждый символ, его кодовый знак и то, как кодовый знак будет представлен в битах. Не зная, какое кодирование использовалось, вы не сможете интерпретировать строку символов корректно.
Существует очень большое количество схем кодирования, но конвертировать их данные между ними очень трудно, причем немногие из них могут учесть наличие символов более двух-трех разных языков. Например, если ваш ПК по умолчанию настроен на использование OEM-Latin II и вы просматриваете Веб-сайт, который использует IBM EBCDIC-Cyrillic, то все символы, которые будут представлены в Cyrillic, который не будет закодирован в схеме Latin II, не будут отображаться корректно. Такие символы будут замещены другими символами, например, знаками вопроса и квадратами.
Поскольку Unicode содержит кодовые знаки для большинства символов во всех современных языках, то использование кодировки символов Unicode позволит вашему компьютеру интерпретировать практически каждый известный символ.
Существует три основных схемы Юникод для кодирования символов: UTF-8, UTF-16 и UTF-32. UTF означает Unicode Transformation Format. Числа, которые идут за UTF, означают размер единиц (в байтах), используемых для кодирования.
- UTF-8 использует 8-битовую кодовую единицу переменной ширины. UTF-8 использует от 1 до 6 байт для кодирования символа; она может использовать меньше, столько же или больше байт, чем UTF-16 для кодирования одного и того же символа. В windows-1251, каждый код от 0 до 127 (U+0000 to U+0127) хранится в одном байте. Только кодовые знаки от 128 (U+0128) и выше хранятся с использованием от 2 до 6 байт.
- UTF-16 использует одну 16-битовую кодовую единицу фиксированной ширины. Он сравнительно компактен и все наиболее часто используемые символы могут быть закодированы с помощью одной 16-битовой кодовой единицы. Другие символы могут быть доступны при использовании пар 16-битовых кодовых единиц.
- UTF-32 требуется 4 байта для кодирования любого символа. В большинстве случаев документ, закодированный с помощью UTF-32, будет примерно в два раза больше, чем такой же документ, закодированный с помощью UTF-16. Каждый символ в нем кодируется с помощью одной 32-битовой единицы кодирования фиксированной ширины. Вы можете использовать UTF-32, если вы не ограничены в дисковом пространстве и хотите использовать одну кодовую единицу для каждого символа.
Все три формы кодирования могут кодировать одни и те же символы и могут быть переведены из одной в другую без потери данных.
Существуют и другие кодировки: например, UTF-7 и UTF-EBCDIC. Существует также кодировка GB18030, которая является китайским эквивалентом кодировки UTF-8 и поддерживает упрощенные и традиционные китайские символы. Для русского языка удобно пользоваться windows-1251.
Модуль ngx_http_charset_module
Модуль ngx_http_charset_module
Модуль ngx_http_charset_module
добавляет указанную
кодировку в поле “Content-Type” заголовка ответа.
Кроме того, модуль может перекодировать данные из одной кодировки в другую
с некоторыми ограничениями:
- перекодирование осуществляется только в одну сторону — от сервера к клиенту,
- перекодироваться могут только однобайтные кодировки
- или однобайтные кодировки в UTF-8 и обратно.
Пример конфигурации
include conf/koi-win; charset windows-1251; source_charset koi8-r;
Директивы
Синтаксис: | charset |
---|---|
Умолчание: | charset off; |
Контекст: | http , server , location , if в location |
Добавляет указанную кодировку в поле “Content-Type” заголовка ответа. Если эта кодировка отличается от указанной в директиве source_charset, то выполняется перекодирование.
Параметр off
отменяет добавление кодировки
в поле “Content-Type” заголовка ответа.
Кодировка может быть задана с помощью переменной:
charset $charset;
В этом случае необходимо, чтобы все возможные значения переменной
присутствовали хотя бы один раз в любом месте конфигурации в виде
директив charset_map, charset или
source_charset.
Для кодировок utf-8
, windows-1251
и koi8-r
для этого достаточно включить в конфигурацию
файлы conf/koi-win
, conf/koi-utf
и conf/win-utf
.
Для других кодировок можно просто сделать фиктивную таблицу перекодировки,
например:
charset_map iso-8859-5 _ { }
Кроме того, кодировка может быть задана в поле “X-Accel-Charset” заголовка ответа. Эту возможность можно запретить с помощью директив proxy_ignore_headers, fastcgi_ignore_headers, uwsgi_ignore_headers, scgi_ignore_headers и grpc_ignore_headers.
Синтаксис: | charset_map |
---|---|
Умолчание: | — |
Контекст: | http |
Описывает таблицу перекодирования из одной кодировки в другую.
Таблица для обратного перекодирования строится на основании тех же данных.
Коды символов задаются в шестнадцатеричном виде.
Неописанные символы в пределах 80-FF заменяются на “?
”.
При перекодировании из UTF-8 символы, отсутствующие в однобайтной кодировке,
заменяются на “&#XXXX;
”.
Пример:
charset_map koi8-r windows-1251 { C0 FE ; # small yu C1 E0 ; # small a C2 E1 ; # small b C3 F6 ; # small ts ... }
При описании таблицы перекодирования в UTF-8, коды кодировки UTF-8 должны быть указаны во второй колонке, например:
charset_map koi8-r utf-8 { C0 D18E ; # small yu C1 D0B0 ; # small a C2 D0B1 ; # small b C3 D186 ; # small ts . .. }
Полные таблицы преобразования из koi8-r
в windows-1251
и из koi8-r
и windows-1251
в utf-8
входят в дистрибутив и находятся в файлах conf/koi-win
,
и conf/win-utf
.
Синтаксис: | charset_types |
---|---|
Умолчание: | charset_types text/html text/xml text/plain text/vnd.wap.wml application/javascript application/rss+xml; |
Контекст: | http , server , location |
Эта директива появилась в версии 0.
Разрешает работу модуля в ответах с указанными MIME-типами
в дополнение к “text/html
”.
Специальное значение “*
” соответствует любому MIME-типу
(0.8.29).
До версии 1.5.4 по умолчанию вместо MIME-типа “application/javascript
” использовался “application/x-javascript
”.
Синтаксис: | override_charset |
---|---|
Умолчание: | override_charset off; |
Контекст: | http , server , location , if в location |
Определяет, выполнять ли перекодирование для ответов, полученных от проксированного сервера или от FastCGI/uwsgi/SCGI/gRPC-сервера, если в ответах уже указана кодировка в поле “Content-Type” заголовка ответа. Если перекодирование разрешено, то в качестве исходной кодировки используется кодировка, указанная в полученном ответе.
Необходимо отметить, что если ответ был получен в подзапросе,
то, независимо от значения директивы override_charset
,
всегда выполняется перекодирование из кодировки ответа в кодировку
основного запроса.
Синтаксис: | source_charset |
---|---|
Умолчание: | — |
Контекст: | http , server , location , if в location |
Задаёт исходную кодировку ответа. Если эта кодировка отличается от указанной в директиве charset, то выполняется перекодирование.
Некоторые аспекты русификации принтеров
Цель этой статьи — рассказать о «проблеме кодировок» и помочь в выборе принтера, совместимого с уже установленным программным обеспечением. Статья не ставит целью рекомендовать пользователям конкретные модели принтеров конкретных производителей. Статья рассчитана на начинающих пользователей.
Формирование изображения на бумаге
Подавляющее большинство принтеров, независимо от принципа работы, позволяют выводить на бумагу произвольное изображение. Существует лишь одна, довольно редкая теперь, категория принтеров, предназначенных только для печати текста — АЦПУ (алфавитно-цифровые печатающие устройства). В АЦПУ символы отлиты на барабане или выбиты на металлической ленте, поэтому изменить гарнитуру, размер и другие параметры шрифта невозможно.
Принтеры, предназначенные для делового и домашнего применения, формируют изображение растровым способом, создавая буквы и цифры из большого числа мелких точек. Описание каждого символа хранится в ПЗУ принтера в виде матрицы. При печати текста принтер извлекает описание каждого символа из ПЗУ и отображает его «рисунок» на бумаге.
Вот так выглядит буква «A» для 9-игольчатого матричного принтера Star-NX1500. Как видно, матрица символа имеет размер 6×9 ячеек, при этом точки могут быть расположены не только внутри ячеек, но и между ними. Высота матрицы совпадает с количеством игл принтера, что позволяет печатать одну строку символов за один проход печатающей головки. Соответственно, для 24-игольчатых принтеров матрица имеет высоту в 24 ячейки, что позволяет улучшить изображение символов.
Лазерные принтеры формируют изображение аналогичным образом, но имеют меньший размер точек и более подробное описание символов, поэтому качество их печати значительно выше.
Каждому символу, хранящемуся в ПЗУ принтера, присвоен уникальный номер или, иначе говоря, код. Например, латинской букве «A» соответствует код 65. Для печати символа прикладной программе необходимо послать на принтер нужный код. Совокупность символов и их кодов образует таблицу символов или кодовую таблицу. Принтер выбирает из таблицы символов его описание (матрицу) и генерирует изображение на бумаге.
В то же время, большинство принтеров позволяют напрямую управлять генерацией изображения, то есть выводить на бумагу отдельные точки. Именно таким способом на принтере печатаются рисунки и фотографии.
Таким образом, существует два основных способа печати: с помощью кодов символов (печать кодами) и поточечный вывод изображения (графическая печать).
Способы русификации принтеров
Понятие «русификация принтера» имеет смысл только для печати кодами. Разберем этот вопрос подробнее.
Печать кодами является экономичной и быстрой — в идеале для печати одного символа нужно послать на принтер один байт. (В Unicode символы кодируются двумя байтами, но мне еще не встречались принтеры, рассчитанные на Unicode). Идея печати кодами очень проста и не отличается от принципа вывода информации на экран. Для вывода информации на экран используется текущая кодовая таблица компьютера, для вывода на принтер — кодовая таблица принтера. Для того, чтобы распечатанный текст совпадал с текстом на экране, кодовые таблицы компьютера и принтера должны совпадать. Именно это и является основной задачей русификации принтера — обеспечить поддержку кодовой таблицы, используемой в компьютере.
Для каждой страны и каждого языка существует своя кодовая таблица, для некоторых языков даже несколько таблиц, в которых одни и те символы кодируются по разному, а одним и тем же кодам соответствуют разные буквы. Ситуация усугубляется различием кодировок в разных операционных системах. В русской версии MS-DOS используется кодовая таблица (code page, CP) с номером 866, а в русифицированной системе Windows — таблица 1251. В системе Unix и в компьютерах Macintosh — свои кодировки. Лучшее, что можно обещать, это что коды латинских букв будут одинаковы везде.
Русификация принтера означает, что принтер имеет «прошитые» русские буквы, которые программа не должна «рисовать» сама, и что встроенная в принтер кодовая таблица совпадает с таблицей компьютера. Таким образом, для нормальной печати русских текстов из MS-DOS принтер должен быть русифицирован согласно CP866, а для печати из Windows — согласно CP1251.
До недавнего времени принтеры русифицировались только для использования в MS-DOS, но в последнее время все больше принтеров, поддерживающих и кодировку русской версии Windows, и даже русскую кодировку системы Unix — KOI8-R. Тем не менее, печать из Windows обычно происходит в графическом режиме, поэтому русификация принтера для Windows-программ не является необходимой.
Далее описаны возможные способы русификации принтеров в порядке убывания их предпочтительности.
Аппаратно русифицированный принтер
Вообще говоря, только такая русификация и может считаться настоящей и полной. Принтер содержит «прошитые» русские буквы в необходимой кодировке (обычно CP866). Важно, чтобы имелись буквы всех стандартных размеров и, желательно, нескольких начертаний.
На рисунке схематично показан процесс печати в кодах на русифицированном принтере. Все, что нужно сделать прикладной программе — послать на принтер последовательность кодов символов. Принтер генерирует изображение согласно встроенной в него кодовой таблице и передает его на печатающий узел. Практически все матричные и струйные принтеры аппаратно русифицированы.
Русифицированный в другой кодировке
Все еще попадаются принтеры, имеющие «прошитые» русские шрифты, но кодировка которых отличается от CP866. В среде MS-DOS такой принтер можно использовать, если достать или написать самому простой резидентный перекодировщик. В частности, таким образом можно печатать на многих АЦПУ, изначально не рассчитанных на подключение к персональным компьютерам.
В Windows на таком принтере можно печатать в графическом режиме, как обычно и делается. В этом случае подсистема печати Windows сама формирует изображение, прикладной программе об этом беспокоиться не надо.
Принтер позволяет загрузить шрифты в специальный буфер
Традиционный вариант для лазерных принтеров. Встроенные в ПЗУ шрифты нерусифицированы, то есть их изображение не соответствует русским буквам. Однако принтер позволяет загрузить программные шрифты в специальный буфер и использовать их так же, как шрифты из ПЗУ.
Конечно, после каждого выключения и включения принтера шрифт придется загружать заново, но с точки зрения прикладной программы печать будет по прежнему происходить в кодах. На скорости это не сказывается, только доставляет некоторые неудобства пользователю. Для печати на таком принтере необходимо иметь файл со шрифтами и, в некоторых случаях, специальную программу для их загрузки.
Печать из DOS-программы происходит в два этапа. Первый этап — загрузка шрифта, в идеальном случае эта операция производится один раз. Второй этап — печать отчетов из программы. Однако если принтер используется несколькими пользователями (например, по сети) или на него выводятся данные как из DOS-программ, так и из Windows-приложений, то загруженный в буфер шрифт может быть удален. Поэтому при использовании принтера в локальной сети никогда не вредно лишний раз загрузить в него шрифт перед печатью документа.
Такой способ русификации можно использовать для старых моделей матричных принтеров, практически для всех лазерных принтеров и для многих струйных принтеров. К сожалению, не все струйные принтеры позволяют загружать шрифт, а лазерные имеют свою специфику. В частности, недостаточно просто загрузить шрифты в лазерный принтер, а нужно выбрать текущий, потому что за один раз можно загрузить несколько шрифтов.
При печати на таком принтере из Windows-программы драйвер Windows автоматически загрузит в буфер необходимые шрифты, так что об этом заботиться не нужно. В Windows все немного проще.
Нерусифицированный без возможности загрузки шрифтов
Если принтер нерусифицирован аппаратно и не имеет буфера для загрузки русских шрифтов, то он никаким образом не позволит печатать по-русски кодами. Единственный вариант печати на таком принтере — в графическом режиме. А нерусифицированное АЦПУ можно просто выбросить (если у вас нет барабана с русскими буквами).
Этот вариант самый неприятный для программистов. Программа должна сама формировать нужное изображение на бумаге, то есть проделать за принтер всю его работу. Ввиду большой сложности лишь немногие DOS-программы работают с такими принтерами. Хотя… Если вы подыщете подходящий резидентный графический драйвер, то и с таким принтером можно жить в MS-DOS.
Для Windows этот вариант ничего необычного не представляет — как вы помните, Windows все равно обычно печатает в графике. Здесь необходимо отметить, что за последние несколько лет появилось множество моделей принтеров, ориентированных именно на печать из Windows и только из Windows. Обычно они называются Windows-принтерами или GDI-принтерами. Многие из них не позволяют печатать в кодах вообще. Поэтому вывести что либо на такой принтер из «чистого» DOS невозможно, а из DOS-сеанса Windows — хоть иногда и получается, но результат не всегда соответствует ожиданиям.
Дополнительные требования к принтерам
Грамотная русификация подразумевает не только сам факт наличия у принтера русских шрифтов в нужной кодировке, но также поддержку нескольких стандартных размеров и вариантов начертаний шрифта. Кроме того, хотя это уже не относится к собственно русификации, принтер должен обеспечивать ряд режимов, ставших стандартом de-facto. Ниже в таблице сведены основные требования, которым должен соответствовать правильно русифицированный принтер, а рисунок рядом показывает стандартные типы шрифтов, взятые из «Руководства по эксплуатации принтера Epson-NX1500».
Обозначения: А — АЦПУ, М — матричный принтер, С — струйный принтер, Л — лазерный принтер, + — должно присутствовать, — неприменимо, О — необязательно, но желательно.
Параметр | Значение | А | М | С | Л |
Длина листа, дюймов | 11, 12 | + | + | + | + |
Число строк на дюйм, (LPI) | 6, 8 | + | + | + | + |
Число строк на странице | Не менее 66 для режима 6LPI, не менее 88 для режима 8LPI | + | + | + | + |
Ширина символов (символов на дюйм, CPI) | 10, 12, 17, 20 | — | + | + | + |
Число символов размером 10CPI в строке | 80 для «узких» (A4) принтеров, 136 для «широких» (A3) принтеров | + | + | + | + |
Управление отступом и полями | |||||
С помощью символов табуляции | + | + | + | + | |
Точным позиционированием | O | + | + | + | |
Дополнительные возможности | |||||
Черновой и чистовой режимы | — | О | О | О | |
Печать в альбомном режиме (поперек страницы) | — | О | О | + | |
Пропуск перфорации (линии отрыва) | + | + | О | — |
- Число строк на странице приведено для листа высотой 11 дюймов, для листа в 12 дюймов эти значения выше, однако большинство программ для MS-DOS рассчитаны на приведенные значения независимо от высоты листа.
- Число символов в строке широких принтеров заметно меньше за счет припуска на перфорацию и механизм подачи. Но современные принтеры позволяют даже на перфорированной бумаге получить в строке до 156 символов размером 10CPI, и полновесные 160 символов на бумаге без перфорации.
- Если принтер позволяет печатать на рулонной/перфорированной бумаге, то он может делать пропуск линии отрыва. Чем меньше этот интервал, тем больше строк принтер может распечатать. Это значение обычно составляет 0.7-1 дюйм на страницу (верний и нижний отступы), то есть приводит к потере до 6 строк в режиме 6LPI.
- Многие лазерные принтеры требуют дополнительного отступа от края листа, обычно до 0,5 см с каждой стороны, что сокращает число символов в строке и число строк на листе.
Печать из Windows
Как правило, печать из Windows не вызывает никаких проблем, разве что пользователи матричных или струйных принтеров могут пожаловаться на слишком низкую скорость печати. Но, если вдуматься, это происходит из-за того, что печать производится в графическом режиме! То есть подсистема печати Windows автоматически генерирует растровую картинку для выводимого текста и даже не пытается использовать возможности русифицированных принтеров. Это тем более обидно, что Windows умеет печатать в кодах встроенными в принтер шрифтами.
Для проверки того, как Windows печатает в кодах, нужно установить драйвер матричного принтера и сделать его текущим. После этого, запустив текстовый редактор, скажем MS Word, можно заметить, что в списке шрифтов появились неизвестные шрифты, типа Courier10, Roman12 или Draft20, помеченные слева специальным значком в виде принтера. То есть Word, а точнее Windows, знает о существовании «прошитых» в принтер шрифтов, об их начертании и размере.
Однако система и понятия не имеет, что принтер может быть русифицирован. Наберите текст русскими буквами и отформатируйте его «встроенным» шрифтом — вы увидите привычные глазу греческие буквы. Но это еще не самое страшное. В конце концов нам на эти буквы не смотреть надо, а печатать, а коды-то у них наши, русские. Как бы не так! Windows выводит текст, и при этом весьма быстро, используя кодировку Windows — 1251, а принтеры обычно русифицируются в кодировке 866, поэтому хотя на бумаге и будут русские буквы, но ничего членораздельного прочесть не удастся.
Этот факт подтверждает, что:
- система Windows так и не была русифицирована до конца и по отношению к российским пользователям допущена существенная дискриминация;
- аппаратная русификация принтера в DOS-кодировке ничего не дает пользователю Windows.
Исходя из сказанного, при печати из Windows можно забыть об использовании встроенных русских шрифтов вашего старенького матричного принтера. Никогда не форматируйте текст «прошитыми» шрифтами, если вы используете матричный принтер — вместо текста будет напечатана абракадабра. Используйте шрифты TrueType, которые печатаются в графике. Так хоть и дольше, зато по-русски.
Так как разработчики Windows отказались от использования DOS-русифицированных принтеров, то создателям принтеров приходится теперь обеспечивать русификацию своей продукции не только в кодировке CP866, но и в CP1251. На сегодняшний момент существует уже множество моделей принтеров, аппаратно русифицированных для печати в кодах именно из Windows. К сожалению, я не обладаю опытом использования такого принтера, поэтому ничего конкретного сказать не могу. Вероятно, матричные принтеры, русифицированные специально для Windows, позволяют печатать так же быстро, как это было в DOS.
Я послал запрос в российские представительства фирм HP, Epson, Canon, Citizen и Lexmark с просьбой выслать список русифицированных моделей принтеров и способы их русификации. Ниже приведены полученные ответы.
Lexmark
- Все лазерные принтеры и сетевые струйные принтеры русифицированы аппаратно.
- Струйные принтеры серии Z являются Windows-принтерами и из чистого DOS не печатают (но печатают по-русски из DOS-окна Windows).
- Поддерживают CP866, CP1251, а также украинские и латвийские кодовые страницы.
Александр Надольский, инженер по техподдержке фирмы Lexmark.
Hewlett Packard
- Модели лазерных принтеров 2100, 4000, 4050, 5000, 8000, 8100 имеют аппаратную русификацию. В этих принтерах имеются различные масштабируемые русские шрифты всех кодировок (DOS CP866, WIN1251, KOI8-R), по умолчанию выбран моноширинный шрифт Courier, 10 символов на дюйм.
- Принтеры 6L, 1100 русифицируются программно (специальная программа помещает масштабируемый шрифт Courier в оперативную память принтера).
- Серии струйных принтеров: 8XX (кроме 820), 2X00, 670, 69X русифицированы аппаратно. Доступные гарнитуры и размеры для каждого принтера приведены в руководстве пользователя. Серия 7X0, 820 из DOS не печатают. Для этих моделей существует возможность печатать из DOS-сеанса в Windows 95, 98.
- Принтер DeskJet 610C по-русски из DOS не печатает.
Игорь Шабанов, инженер центра технической поддержки HP
Tally
- Принтеры фирмы Tally имеют аппаратную русификацию как в CP866, так и в CP1251.
Следует отметить, что драйверы Windows все же проявляют крупицы соображения при печати на лазерном принтере, в частности, по умолчанию на основе шрифтов печатаемого текста драйвер генерирует описание шрифта на языке PCL и записывает его в буфер принтера. В дальнейшем печать происходит фактически кодами, а значит, очень быстро.
Немного о системах команд
Так как АЦПУ имеют символы только одного начертания, для них актуальна лишь проблема соответствия кодовых таблиц принтера и компьютера. Никакой системы команд у АЦПУ нет. Более «продвинутые» принтеры, которые умеют печатать несколькими шрифтами, позволяют это делать посредством специальных команд.
На сегодня существует три наиболее распространенных системы команд принтеров: фирм Epson, IBM и HP.
Система команд фирмы Epson
Эта система команд называется ESC/P или, в расширенном варианте, ESC/P2. Другие фирмы, например Canon, называют ее LQ. Ее поддерживают все принтеры Epson, даже лазерные (по крайней мере старые модели), и многие модели других фирм, прежде всего матричные и струйные. Эта система команд является стандартом де-факто для DOS-программ.
Система команд фирмы IBM
Эта система команд называется IBM Proprinter, она же X24 (с вариациями), она же BJ. Ее поддерживают матричные принтеры IBM/Lexmark и многие модели других фирм, прежде всего матричные и струйные, в частности, Canon. Эта система команд во многом совпадает с системой ESC/P.
Система команд фирмы Hewlett Packard
Эта система команд называется PCL (Printer Control Language), сейчас используются версии PCL3 (для струйных принтеров) и PCL5/PCL6 для лазерных принтеров . Язык PCL поддерживают практически все лазерные принтеры любых производителей, а также многие струйные принтеры.
Несколько рекомендаций пользователям
Позволю себе дать несколько советов.
Если вы планируете работать с DOS-программами, подойдите к выбору принтера со всей ответственностью, поинтересуйтесь у производителя программы, с какими принтерами его программа работает лучше всего, узнайте типичное количество строк в странице и символов в строке в выходных документах. В общем случае, идеальным вариантом будет аппаратно русифицированный принтер в кодировке 866 и системе команд Epson/IBM. Проверьте наличие шрифтов всех стандартных размеров, максимальное число строк на странице и минимальные отступы от края листа.
Не выбрасывайте имеющееся у вас АЦПУ, если к нему можно достать расходники и запчасти. Это дешевое и надежное средство печати огромных объемов текста.
Наибольшая разница в скорости печати в режиме кодов и графическом режиме проявляется у матричных принтеров. Если вы страдаете нервными расстройствами, не используйте DOS-русифицированный матричный принтер для печати из Windows. Приобретите принтер, русифицированный специально для Windows, а еще лучше — купите струйный принтер, он работает тише и быстрее. При этом струйный принтер достаточно быстро работает и в графическом режиме.
Не покупайте GDI-принтер (принтер, который может печатать только из Windows), если только вы не очень стеснены в средствах. GDI-принтер печатает медленнее любого типичного PCL-принтера хотя бы потому, что у него нет буфера для хранения шрифтов. Кроме того, на таком принтере нельзя печатать из DOS.
Независимо от типа принтера, чем больше размер буферов для шрифтов и для временного хранения текста — тем лучше.
Пожелание изготовителям принтеров и драйверов
Еще недавно у меня была заветная мечта — печатать из Windows на матричном или струйном принтере, используя встроенные шрифты. Отсюда и пожелание: встроить поддержку CP1251 в принтер, либо модифицировать драйверы, чтобы можно было печатать на принтерах, русифицированных согласно CP866.
То ли производители принтеров прислушались к моему мнению, то ли просто я угадал направление в развитии принтеров, но сегодня уже многие принтеры русифицированы для печати из Windows. К сожалению, печатать в кодах на старых DOS-русифицированных принтерах по прежнему невозможно.
А жаль, какая была бы радость пользователям, у которых осталось огромное количество матричных принтеров и которые вынуждены печатать на них из Word, не имея средств (или желания) приобрести «нормальный» лазерный принтер.
Полезные ссылки на русском языке
Многие производители принтеров уже имеют российские сайты в Интернете. Рекомендую посетить узлы фирм Canon, Citizen, Epson, Hewlett Packard, Lexmark. На них можно найти информацию по текущим моделям, некоторые их характеристики и новые драйверы.
Ну а тем, кто интересуется заменой своих устаревших АЦПУ, полезно будет посетить сайты фирм и их дилеров Genicom, Printronix. и Tally и ознакомиться с технологией линейно-матричной печати.
Дополнение
Печать из Windows с использованием драйвера «Общий/Только текст»
В ответ на первый вариант статьи я получил несколько писем, в которых их авторы советовали мне использовать для печати из Windows на DOS-русифицированном матричном принтере драйвер «Только текст». Честно говоря, я никогда не пользовался этим драйвером, доверившись его простому названию. Однако, как выяснилось, этот драйвер позволяет указать управляющие последовательности для выбора ширины символов (10, 12 и 17 CPI), включения и отключения режимов подчеркивания, полужирной печати и уширенных символов, а самое главное, позволяет указать способ перекодировки символов Windows в символы конкретного принтера.
Безусловно, этот драйвер позволяет снять многие проблемы при печати на DOS-русифицированном матричном принтере, однако, к сожалению, не все.
- Выбор драйвера «Только текст» моментально приводит к тому, что набранный в Word текст становится абсолютно нечитабельным (по крайней мере, на моей системе), и даже форматирование этого текста «прошитым» шрифтом, например Roman10, не помогает. Эффект в точности аналогичен тому, как если бы вы открыли текст, в котором текст отформатирован отсутствующем на вашем компьютере шрифтом. Но в данном-то случае Windows может понять, что используется драйвер «Только текст» с моноширинным шрифтом и подставить, например, Courier New. К сожалению, этого не происходит. Попытка в лоб записать в секцию [Font Substitutes] файла win.ini что-нибудь типа Roman10=Courier New Cyr также ни к чему не приводит. То есть здесь наблюдается классический случай, когда правая рука не ведает, что творит левая. К счастью, если правильно указать порядок перекодировки, печатается текст нормально.
- Даже правильно указанные управляющие последовательности могут вызвать различные побочные эффекты. Например, на моем Epson-совместимом принтере Star NX-1500 после каждой подчеркнутой строчки прогоняется лишняя пустая строка. То есть воспользоваться на этом принтере режимом подчеркивания я не могу.
- В русифицированной Windows есть только три стандартных способа перекодировки, ни один из которых не учитывает русскую CP866. Поэтому, если вы хотите печатать по-русски на своем аппаратно русифицированном принтере, вам сначала вручную придется заполнить таблицу перекодировки. Не очень-то удачный подход в русской, заметьте, версии Windows.
Таким образом, хотя печать из Windows на DOS-русифицированном принтере оказывается возможной, усилий к этому нужно приложить чуть больше, чем хотелось бы. Поэтому я по прежнему считаю, что Microsoft и производители принтеров должны внести все необходимые настройки непостредственно в родные драйверы, а не заставлять пользователей вручную задавать параметры перекодировки и управляющие последовательности принтеров.
Как пользоваться драйвером «Общий/Только текст»
- Установить драйвер «Только текст» (для Windows95) или «Общий» (для Windows98).
- Кнопкой «Новая модель» создать новый профиль печати (можно этого не делать, если у вас только одна модель принтера).
- В разделе «Таблица соответствия расширенных символов» сопоставьте каждому символу Windows символ, печатаемый на принтере. Для этого по очереди выбирайте из списка «На экране» символы в кодировке 1251 и в поле «На принтере» вводите код из таблицы 866. Посмотреть коды символов для CP866 можно с помощью утилиты «Таблица символов», выбрав шрифт Terminal.
- В поле «Начало печати» полезно указать команду сброса текущего состояния принтера.
- На вкладке «Шрифты» заполните нужные вам поля командами вашего принтера.
- После этого сделайте этот драйвер текущим, отформатируйте текст нужным шрифтом (Roman10, Roman12 или Roman17) и печатайте. Жирный и подчеркнутый шрифт устанавливается стандартным способом.O, она же chr(15), она же SI, означает включить режим сжатой печати.
- P означает режим 10CPI («Пайка»).
- F означает прекратить уширенный режим.
- H означает прекратить двухударную печать.
- M означает переход в режим 12CPI («Элита»).
Использование команды
\encoding
в psql.\encoding
позволяет оперативно изменять клиентскую кодировку. Например, чтобы изменить кодировку наSJIS
, введите:\encoding SJIS
libpq (Раздел 33.10) имеет функции, для управления клиентской кодировкой.
Использование
SET client_encoding TO
. Клиентская кодировка устанавливается следующей SQL-командой:SET CLIENT_ENCODING TO '
value
';Также, для этой цели можно использовать стандартный синтаксис SQL
SET NAMES
:SET NAMES '
value
';Получить текущую клиентскую кодировку:
SHOW client_encoding;
Вернуть кодировку по умолчанию:
RESET client_encoding;
Использование
PGCLIENTENCODING
. Если установлена переменная окруженияPGCLIENTENCODING
, то эта клиентская кодировка выбирается автоматически при подключении к серверу. (В дальнейшем это может быть переопределено при помощи любого из методов, указанных выше.)Использование переменной конфигурации client_encoding. Если задана переменная
client_encoding
, указанная клиентская кодировка выбирается автоматически при подключении к серверу. (В дальнейшем это может быть переопределено при помощи любого из методов, указанных выше.)- Обработка информации на китайском, японском, корейском & вьетнамском языках.
Содержит подробные объяснения по
EUC_JP
,EUC_CN
,EUC_KR
,EUC_TW
.- http://www.unicode.org/
Сайт Unicode Consortium.
- RFC 3629
UTF-8 (формат преобразования 8-битного UCS/Unicode) определён здесь.
- Опера 3.21
- Opera 3.21 не может переключаться между кодировками. Вы можете установить одну кодировку в диалоговом окне настроек.
- Рысь 2,7
- Lynx распознает кодировку, но может отображать документы только в кодировке, совместимой с кодировкой терминала, на котором он запущен.
- ASCII: Американский стандартный код для обмена информацией
- ANSI: Американский национальный институт стандартов
- Unicode (внутренние текстовые коды, используемые операционными системами)
- UTF -8 (формат преобразования Unicode, в котором для представления символов используется 1 байт)
- UTF-16 (формат преобразования Unicode, который использует 2 байта для представления символов)
- UTF-32 (формат преобразования Unicode, который использует 4 байта для представления символов)
Все буквы в указанных комбинациях должны быть заглавными.
Спасибо Павлу Ладикову и Сергею Назарову, посоветовавших воспользоваться этим драйвером, а также Алексею Смирнову, который разработал большую часть подсистемы печати, используемую в программах фирмы «Овионт», и составил необходимые наборы управляющих последовательностей, часть которых приведена выше.
Что это такое Кодировки символов в HTML. Энциклопедия
Пользователи также искали:
charset utf — 8 php, charset=windows — 1251 не работает, focus html, html auto, html charset, http vwts ru vw_passat3_35i html, калькулятор кодировки abs, кодировка utf — 8 русский язык, кодировка utf — 8, кодировки ауди а8 д3, кодировки гольф 5, кодировки гольф 6, кодировки гольф 7, кодировки октавия а7 fl, кодировки passat b7 usa, кодировки шкода суперб 2, кодировки vag com jetta 6 drive2, meta charset= utf — 8 не работает, meta charset= windows — 1251, utf — 8 html, html, символов, кодировках, кодировками, кодировка, charset, работает, кодировки, кодировок, meta, кодировку, html кодировка, язык, кодировки символов, html кодировку, символы html, кодировке, кодирования, символы, charsetwindows, символа, символов кодировок, символами, русский, windows, кодировок символов, кодировка символов, символов кодирования, кодировкой, кодировка html,
Таблица символов кодирования URL. Спецсимволы символы мнемоники стрелки, смайлики, поддерживает кодировка HTML страницы Windows 1251, UTF 8 и т.д. .. 8 HTML синтаксис HTML5. Язык гипертекстовой разметки HTML используется с 1991 года, но версия 4.0 1997 была первой, где представление символов, отличных от ASCII то. .. Кодирование текстовой информации. Поддержка кодировок символов текста сообщения из внутренней кодировки в кодировку HTML страницы не происходит.. .. Все символы HTML. htmlspecialchars Преобразует специальные символы в HTML сущности не определенные в кодировке символов результирующего документа и вы. .. Спецсимволы HTML спец символы и знаки, стрелки, кавычки. Однобайтовые кодировки. До развития Юникода, символы национальных алфавитов, в том числе и кириллицы, кодировались с. .. htmlspecialchars Manual PHP. Многие строки в HTML синтаксисе например, имена элементов и их. С учетом кодировки символов байты во входном потоке байтов должны быть. .. Кодирование символов в html SEO блог. Тег обеспечивает метаданные о документе. Метаданные не тега задает кодировку символов для HTML документа.. .. Спецсимволы HTML. При передаче файла через форму на spring boot возникает ошибка: HTML документ не содержит объявления кодировки символов.. .. Спецсимволы google-info.org. Перекодирование кириллицы, кодирование специальных символов, просмотр кодов символов в разных кодировках.. .. Кодировка текста ASCII Windows 1251, CP866, KOI8 R и. Как сервер определяет, какая кодировка символов применяется в документе? Некоторые. | HTML документ не содержит объявления кодировки символов. Для отображения символов, которых нет на клавиатуре, применяются специальные знаки, начинающиеся с амперсанда и. .. Кодировка страницы Структура HTML документа. Windows 1251 набор символов и кодировка, являющаяся стандартной 8 битной строки и возврата каретки не используются в HTML документах.. .. Таблица кодов символов Windows 1251. символ, html код, десятичный код, описание., неразрывный пробел., узкий пробел е шириной в букву n. &emsp. .. Поддержка кодировок символов Ejudge. К числу символов принадлежат не только буквы заглавные или строчные, Удобство побайтового кодирования символов очевидно, поскольку байт. .. Метатеги google-info.org. При форматировании текста, как SEO специалисту, так и верстальщику обязательно потребуются символы в формате HTML длинное тире вместо. .. Таблица символов Юникода Unicode для вставки на сайт. Список кодов для URL кодирования букв цифр. использовать только ограниченный набор символов, даже меньший, нежели в ASCII: латинские буквы,. .. HTML кодирование и декодирование. charset utf 8. .. Представление документа в формате HTML. Кодировку HTML страницы нужно указывать для того, чтобы Самая распространенная современная кодировка utf 8. символы отображаются.. .. Кодировки символов в HTML это Что такое Кодировки. российский рубль: U 20BD в Юникоде и ₽ в HTML коде. Надеемся, что данные коды кодировки символов Юникода помогут вам при. .. Учебник 5. Статья Метаданные в HTML. Только лишь для кодирования символов русского языка. По идее, элемент Meta с указание кодировки Html документа лучше будет. |
Таблица символов utf 8 для вставки иконок
Здравствуйте, дорогие друзья!
Наверняка вы уже сталкивались с задачей вставить к себе на сайт символ стрелочки, конверта, телефонной трубки, копирайта или какой-нибудь другой.
Навигация по статье:
Для решения этой задачи можно воспользоваться одним из иконочных шрифтов, таких как Font Awesome, или же подготовить изображение нужного значка и вставить его на сайт. Однако можно пойти более простым путём. Для этого достаточно чтобы у вас перед глазами была таблица символов utf 8 или, как её ещё называют, таблица символов Unicode.
UTF8 на сегодняшний день является наиболее распространённой кодировкой символов. Именно на этой кодировке работает большинство сайтов, а так же движков (в том числе и WordPress).
Кроме того иконки из этой таблицы можно использовать для создания интересных ников на форумах, в социальных сетях или онлайн-играх.
Как это работает?
Смысл использования символов из таблицы UTF8 заключается в том, что у вас в компьютере уже есть все необходимые знаки и ваш браузер может с лёгкостью их отобразить, нужно только знать их специальный код.
Например, символ стрелочка вверх в UTF8 записывается так ↑
Вы можете скопировать эту последовательность знаков и вставить себе в HTML страницу как обычный текст.
После этого у вас на сайте вместо этого набора знаков появится графическое изображение стрелочки. Удобно, не правда ли!?
И не нужно подключать никаких дополнительных шрифтов на ваш сайт ради вставки нескольких символов, а так же готовить и вставлять графические изображения.
Если вы создаёте свою HTML страницу в кодировке Windows-1251 или ещё какой-то другой то коды дынных символов не буду срабатывать, они отображаются только в кодировке UTF8.
Таблица символов UTF8 (Unicode) включает в себя тысячи, а то миллионы различных знаков.
Чтобы вам не приходилось пересматривать огромные таблицы в поисках нужного значка я выбрала наиболее интересные и полезные из них и разбила их по группам.
Символы стрелок в UTF8
Название | Изображение | Код в UTF8 |
---|---|---|
Стрелка влево | ← | ← |
Стрелка вправо | → | → |
Стрелка вверх | ↑ | ↑ |
Стрелка вниз | ↓ | ↓ |
Двойная стрелка в стороны | ↔ | ↔ |
Двойная стрелка вврех-вниз | ↕ | ↕ |
Стрелки влево-вправо | ⇄ | ⇄ |
Стрелки вверх-вниз | ⇅ | ⇅ |
Угловая вниз-влево | ↲ | ↲ |
Угловая вниз-вправо | ↳ | ↳ |
Угловая вверх-влево | ↰ | ↰ |
Угловая вверх-вправо | ↱ | ↱ |
Закруглённая влево | ↶ | ↶ |
Закруглённая вправо | ↷ | ↷ |
Круглая вверх-влево | ↺ | ↺ |
Круглая вверх-вправо | ↻ | ↻ |
Толстая стрелка вправо | ➔ | ➔ |
Стрелка зигзаг вниз | ↯ | ↯ |
Стрелка северо-запад | ↖ | ↖ |
Толстая юго-запад | ➘ | ➘ |
Толстая вправо | ➙ | ➙ |
Толстая северо-восток | ➚ | ➚ |
Пунктирная стрелка вправо | ➟ | ➟ |
Точечная стрелка влево | ⇠ | ⇠ |
Угловатая стрелка вправо | ➤ | ➤ |
Светлая стрелка влево | ⇦ | ⇦ |
Светлая стрелка вправо | ⇨ | ⇨ |
Двойная стрелка влево | « | « |
Двойная стрелка вправо | » | » |
Треугольная стрелка вправо | ► | ► |
Треугольная стрелка влево | ◀ | ◀ |
Треугольная стрелка вверх | ▲ | ▲ |
Треугоьная стрелка вниз | ▼ | ▼ |
Светлый треугольник вправо | ▷ | ▷ |
Светлый треугольник влево | ◁ | ◁ |
Светлый треугольник вверх | △ | △ |
Светый треугольник вниз | ▽ | ▽ |
Стрела лука | ➴ | ➴ |
Таблица иконок в Unicode
Название | Изображение | Код в UTF8 |
---|---|---|
Тёмный телефон | ☎ | ☎ |
Светлый телефон | ☏ | ☏ |
Символ конверт | ✉ | ✉ |
Теефонная трубка | ✆ | ✆ |
Часы | ⌚ | ⌚ |
Галочка в квадрате | ☑ | ☑ |
Символ галочка | ✔ | ✔ |
Символ крестик | ✘ | ✘ | Светлая звезда | ☆ | ☆ |
Тёмная звезда | ★ | ★ |
Четырёхконечная звезда | ✦ | ✦ |
Звезда в круге | ✪ | ✪ |
Светлое сердце | ♡ | ♡ |
Тёмное сердце | ❤ | ❤ |
Смайлик | ☺ | ☺ |
Восклицательный знак | ⚠ | ⚠ |
Вторичное использоване | ♻ | ♻ |
Высокое напряжение | ⚡ | ⚡ |
Чашка кофе | ☕ | ☕ |
Самолёт | ✈ | ✈ |
Песочные часы | ⌛ | ⌛ |
Ножницы | ✂ | ✂ |
Корона | ♕ | ♕ |
Якорь | ⚓ | ⚓ |
Крест | ✝ | ✝ |
Чёрно-белый круг | ◑ | ◑ |
Нота | ♪ | ♪ |
Двойная нота | ♫ | ♫ |
Карандаш | ✎ | ✎ |
Пишущая рука | ✍ | ✍ |
Женский знак | ♀ | ♀ |
Мужской знак | ♂ | ♂ |
Надеюсь что символов, представленных в этих таблицах будет для вас достаточно и вы сможете обходиться без подключения иконочных шрифтов и графических изображений для вставки нужных вам символов. Если данная статья была для вас полезной, не забудьте оставить комментарий. Спасибо что дочитали статью до конца!
Удачи вам в создании своих сайтов!
С уважением Юлия Гусарь
Ascii таблица utf 8 – Тарифы на сотовую связь
В кодировке UTF-8 унаследованы однобайтные (точнее, 7-битные) коды символов ASCII-7 (коды от 0 до 127), т.е. одним байтом кодируются латинские буквы, цифры и специальные символы. Русские буквы (кириллица) представляются 16-битными (двухбайтными) кодами:где X обозначены двоичные разряды для размещения кода символа в соответствии с таблицей UNICODE.
Юникод (англ. Unicode) — стандарт кодирования символов, позволяющий представить знаки почти всех письменных языков. Представляемые в юникоде символы кодируются целыми числами без знака. Эти числа будем называть кодами символов в юникоде или просто UNICODE. Юникод имеет несколько форм представления символов в компьютере: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE). (Англ. Unicode transformation format – UTF).
Рассмотрим, как кодируется в UTF-8 буква Ж. Её UNICODE – 1046 10 или 0416 16 или 10000 010110 2. UNICODE в двоичном виде разбивается на две части: пять левых бит и шесть правых. Левая часть дополняется до байта признаком 110 двухбайтного кода UTF-8: 11010000. К правой части приписываются два бита 10 признака продолжения многобайтного кода: 10010110. Окончательно код буквы Ж в UTF-8 выглядит так:
11010000 10010110 2
или D0 96 16
Таким образом, русская буква кодируется дважды: сначала в 11-битный UNICODE, а затем – в 16-битный UTF-8.
БлогNot. Таблица кодов кириллицы в Unicode, UTF-8 и Windows-1251
Таблица кодов кириллицы в Unicode, UTF-8 и Windows-1251
Во-первых, напомню, что Юникод – не кодировка, а стандарт кодирования, кодировки – это UTF-8, UTF-16 и т.д., но, в силу инерции, разработчики и пользователи часто говорят о «кодировке Юникод», имея в виду распространённую именно в их деревне форму представления символов 🙂
Во-вторых, на самом деле кодирование там довольно замудрённое, возьмём, скажем русскую заглавную «Ж».
Представляемые в Юникоде символы кодируются целыми числами без знака, их можно называть «кодами символов Unicode».
Так, для буквы «Ж» Unicode = 104610 или 041616 или 10000 0101102. Unicode в двоичном виде разбивается на две части: пять левых бит и шесть правых. Левая часть в старших разрядах дополняется до байта признаком 110 двухбайтного кода UTF-8, получаем 11010000. К правой части в старших разрядах приписываются два бита 10 признака продолжения многобайтного кода, получаем 10010110. Окончательно код буквы «Ж» в UTF-8 будет иметь вид 11010000 100101102 или D0 9616.
Именно последний код мы увидим в любом 16-ричном вьюере файла, например, создав в текстовом редакторе файл со словом «Жора» и сохранив его в UTF-8 (только не из Блокнотика Windows, который добавит в начало файла 3-байтовую метку BOM):
То есть, каждая буква кодируется как бы дважды, сначала в 11-битный Unicode, затем в 16-битный UTF-8.
Ниже приведена таблица кодов кириллицы в Unicode, UTF-8 и однобайтовой кодировке Windows-1251.
PostgreSQL : Документация: 10: 23.3. Поддержка кодировок : Компания Postgres Professional
23.3. Поддержка кодировок
Поддержка кодировок в PostgreSQL позволяет хранить текст в различных кодировках, включая однобайтовые кодировки, такие как входящие в семейство ISO 8859 и многобайтовые кодировки, такие как EUC (Extended Unix Code), UTF-8 и внутренний код Mule. Все поддерживаемые кодировки могут прозрачно использоваться клиентами, но некоторые не поддерживаются сервером (в качестве серверной кодировки). Кодировка по умолчанию выбирается при инициализации кластера базы данных PostgreSQL при помощи initdb
. Она может быть переопределена при создании базы данных, что позволяет иметь несколько баз данных с разными кодировками.
Важным ограничением, однако, является то, что кодировка каждой базы данных должна быть совместима с параметрами локали базы данных LC_CTYPE
(классификация символов) и LC_COLLATE
(порядок сортировки строк). Для локали C
или POSIX
подойдёт любой набор символов, но для других локалей, предоставляемых библиотекой libc, есть только один набор символов, который будет работать правильно. (Однако в среде Windows кодировка UTF-8 может использоваться с любой локалью.) Если у вас включена поддержка ICU, локали, предоставляемые библиотекой ICU, можно использовать с большинством (но не всеми) кодировками на стороне сервера.
23.3.1. Поддерживаемые кодировки
Таблица 23.1 показывает кодировки, доступные для использования в PostgreSQL.
Таблица 23.1. Кодировки PostgreSQL
Имя | Описание | Язык | Поддержка на сервере | ICU? | Байтов на символ | Псевдонимы |
---|---|---|---|---|---|---|
BIG5 | Big Five | Традиционные китайские иероглифы | Нет | Нет | 1-2 | WIN950 , Windows950 |
EUC_CN | Extended UNIX Code-CN | Упрощённые китайские иероглифы | Да | Да | 1-3 | |
EUC_JP | Extended UNIX Code-JP | Японский | Да | Да | 1-3 | |
EUC_JIS_2004 | Extended UNIX Code-JP, JIS X 0213 | Японский | Да | Нет | 1-3 | |
EUC_KR | Extended UNIX Code-KR | Корейский | Да | Да | 1-3 | |
EUC_TW | Extended UNIX Code-TW | Традиционные китайские иероглифы, тайваньский | Да | Да | 1-3 | |
GB18030 | Национальный стандарт | Китайский | Нет | Нет | 1-4 | |
GBK | Расширенный национальный стандарт | Упрощённые китайские иероглифы | Нет | Нет | 1-2 | WIN936 , Windows936 |
ISO_8859_5 | ISO 8859-5, ECMA 113 | Латинский/Кириллица | Да | Да | 1 | |
ISO_8859_6 | ISO 8859-6, ECMA 114 | Латинский/Арабский | Да | Да | 1 | |
ISO_8859_7 | ISO 8859-7, ECMA 118 | Латинский/Греческий | Да | Да | 1 | |
ISO_8859_8 | ISO 8859-8, ECMA 121 | Латинский/Иврит | Да | Да | 1 | |
JOHAB | JOHAB | Корейский (Хангыль) | Нет | Нет | 1-3 | |
KOI8R | KOI8-R | Кириллица (Русский) | Да | Да | 1 | KOI8 |
KOI8U | KOI8-U | Кириллица (Украинский) | Да | Да | 1 | |
LATIN1 | ISO 8859-1, ECMA 94 | Западноевропейские | Да | Да | 1 | ISO88591 |
LATIN2 | ISO 8859-2, ECMA 94 | Центральноевропейские | Да | Да | 1 | ISO88592 |
LATIN3 | ISO 8859-3, ECMA 94 | Южноевропейские | Да | Да | 1 | ISO88593 |
LATIN4 | ISO 8859-4, ECMA 94 | Североевропейские | Да | Да | 1 | ISO88594 |
LATIN5 | ISO 8859-9, ECMA 128 | Турецкий | Да | Да | 1 | ISO88599 |
LATIN6 | ISO 8859-10, ECMA 144 | Скандинавские | Да | Да | 1 | ISO885910 |
LATIN7 | ISO 8859-13 | Балтийские | Да | Да | 1 | ISO885913 |
LATIN8 | ISO 8859-14 | Кельтские | Да | Да | 1 | ISO885914 |
LATIN9 | ISO 8859-15 | LATIN1 c европейскими языками и диалектами | Да | Да | 1 | ISO885915 |
LATIN10 | ISO 8859-16, ASRO SR 14111 | Румынский | Да | Нет | 1 | ISO885916 |
MULE_INTERNAL | Внутренний код Mule | Мультиязычный редактор Emacs | Да | Нет | 1-4 | |
SJIS | Shift JIS | Японский | Нет | Нет | 1-2 | Mskanji , ShiftJIS , WIN932 , Windows932 |
SHIFT_JIS_2004 | Shift JIS, JIS X 0213 | Японский | Нет | Нет | 1-2 | |
SQL_ASCII | не указан (см. текст) | any | Да | Нет | 1 | |
UHC | Унифицированный код Хангыль | Корейский | Нет | Нет | 1-2 | WIN949 , Windows949 |
UTF8 | Unicode, 8-bit | все | Да | Да | 1-4 | Unicode |
WIN866 | Windows CP866 | Кириллица | Да | Да | 1 | ALT |
WIN874 | Windows CP874 | Тайский | Да | Нет | 1 | |
WIN1250 | Windows CP1250 | Центральноевропейские | Да | Да | 1 | |
WIN1251 | Windows CP1251 | Кириллица | Да | Да | 1 | WIN |
WIN1252 | Windows CP1252 | Западноевропейские | Да | Да | 1 | |
WIN1253 | Windows CP1253 | Греческий | Да | Да | 1 | |
WIN1254 | Windows CP1254 | Турецкий | Да | Да | 1 | |
WIN1255 | Windows CP1255 | Иврит | Да | Да | 1 | |
WIN1256 | Windows CP1256 | Арабский | Да | Да | 1 | |
WIN1257 | Windows CP1257 | Балтийские | Да | Да | 1 | |
WIN1258 | Windows CP1258 | Вьетнамский | Да | Да | 1 | ABC , TCVN , TCVN5712 , VSCII |
Не все клиентские API поддерживают все перечисленные кодировки. Например, драйвер интерфейса JDBC PostgreSQL не поддерживает MULE_INTERNAL
, LATIN6
, LATIN8
и LATIN10
.
Поведение кодировки SQL_ASCII
существенно отличается от других. Когда набором символов сервера является SQL_ASCII
, сервер интерпретирует значения от 0 до 127 байт согласно кодировке ASCII, тогда как значения от 128 до 255 воспринимаются как незначимые. Перекодировка не будет выполнена при выборе SQL_ASCII
. Таким образом, этот вариант является не столько объявлением того, что используется определённая кодировка, сколько объявлением того, что кодировка игнорируется. В большинстве случаев, если вы работаете с любыми данными, отличными от ASCII, не стоит использовать SQL_ASCII
, так как PostgreSQL не сможет преобразовать или проверить символы, отличные от ASCII.
23.3.2. Настройка кодировки
initdb
определяет кодировку по умолчанию для кластера PostgreSQL. Например,
initdb -E EUC_JP
настраивает кодировку по умолчанию на EUC_JP
(Расширенная система кодирования для японского языка). Можно использовать --encoding
вместо -E
в случае предпочтения более длинных имён параметров. Если параметр -E
или --encoding
не задан, initdb
пытается определить подходящую кодировку в зависимости от указанной или заданной по умолчанию локали.
При создании базы данных можно указать кодировку, отличную от заданной по умолчанию, если эта кодировка совместима с выбранной локалью:
createdb -E EUC_KR -T template0 --lc-collate=ko_KR.euckr --lc-ctype=ko_KR.euckr korean
Это создаст базу данных с именем korean
, которая использует кодировку EUC_KR
и локаль ko_KR
. Также, получить желаемый результат можно с помощью данной SQL-команды:
CREATE DATABASE korean WITH ENCODING 'EUC_KR' LC_COLLATE='ko_KR.euckr' LC_CTYPE='ko_KR.euckr' TEMPLATE=template0;
Заметьте, что приведённые выше команды задают копирование базы данных template0
. При копировании любой другой базы данных, параметры локали и кодировку исходной базы изменить нельзя, так как это может привести к искажению данных. Более подробное описание приведено в Разделе 22.3.
Кодировка базы данных хранится в системном каталоге pg_database
. Её можно увидеть при помощи параметра psql
-l
или команды \l
.
$ psql -l
List of databases
Name | Owner | Encoding | Collation | Ctype | Access Privileges
-----------+----------+-----------+-------------+-------------+-------------------------------------
clocaledb | hlinnaka | SQL_ASCII | C | C |
englishdb | hlinnaka | UTF8 | en_GB.UTF8 | en_GB.UTF8 |
japanese | hlinnaka | UTF8 | ja_JP.UTF8 | ja_JP.UTF8 |
korean | hlinnaka | EUC_KR | ko_KR.euckr | ko_KR.euckr |
postgres | hlinnaka | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 |
template0 | hlinnaka | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {=c/hlinnaka,hlinnaka=CTc/hlinnaka}
template1 | hlinnaka | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {=c/hlinnaka,hlinnaka=CTc/hlinnaka}
(7 rows)
Важно
На большинстве современных операционных систем PostgreSQL может определить, какая кодировка подразумевается параметром LC_CTYPE
, что обеспечит использование только соответствующей кодировки базы данных. На более старых системах необходимо самостоятельно следить за тем, чтобы использовалась кодировка, соответствующая выбранной языковой среде. Ошибка в этой области, скорее всего, приведёт к странному поведению зависимых от локали операций, таких как сортировка.
PostgreSQL позволит суперпользователям создавать базы данных с кодировкой SQL_ASCII
, даже когда значение LC_CTYPE
не установлено в C
или POSIX
. Как было сказано выше, SQL_ASCII
не гарантирует, что данные, хранящиеся в базе, имеют определённую кодировку, и таким образом, этот выбор чреват сбоями, связанными с локалью. Использование данной комбинации устарело и, возможно, будет полностью запрещено.
23.3.3. Автоматическая перекодировка между сервером и клиентом
PostgreSQL поддерживает автоматическую перекодировку между сервером и клиентом для определённых комбинаций кодировок. Информация, касающаяся перекодировки, хранится в системном каталоге pg_conversion
. PostgreSQL включает в себя некоторые предопределённые кодировки, как показано в Таблице 23.2. Есть возможность создать новую перекодировку при помощи SQL-команды CREATE CONVERSION
.
Таблица 23.2. Клиент-серверные перекодировки наборов символов
Серверная кодировка | Доступные клиентские кодировки |
---|---|
BIG5 | не поддерживается как серверная кодировка |
EUC_CN | EUC_CN, MULE_INTERNAL , UTF8 |
EUC_JP | EUC_JP, MULE_INTERNAL , SJIS , UTF8 |
EUC_JIS_2004 | EUC_JIS_2004, SHIFT_JIS_2004 , UTF8 |
EUC_KR | EUC_KR, MULE_INTERNAL , UTF8 |
EUC_TW | EUC_TW, BIG5 , MULE_INTERNAL , UTF8 |
GB18030 | не поддерживается как серверная кодировка |
GBK | не поддерживается как серверная кодировка |
ISO_8859_5 | ISO_8859_5, KOI8R , MULE_INTERNAL , UTF8 , WIN866 , WIN1251 |
ISO_8859_6 | ISO_8859_6, UTF8 |
ISO_8859_7 | ISO_8859_7, UTF8 |
ISO_8859_8 | ISO_8859_8, UTF8 |
JOHAB | не поддерживается как серверная кодировка |
KOI8R | KOI8R, ISO_8859_5 , MULE_INTERNAL , UTF8 , WIN866 , WIN1251 |
KOI8U | KOI8U, UTF8 |
LATIN1 | LATIN1, MULE_INTERNAL , UTF8 |
LATIN2 | LATIN2, MULE_INTERNAL , UTF8 , WIN1250 |
LATIN3 | LATIN3, MULE_INTERNAL , UTF8 |
LATIN4 | LATIN4, MULE_INTERNAL , UTF8 |
LATIN5 | LATIN5, UTF8 |
LATIN6 | LATIN6, UTF8 |
LATIN7 | LATIN7, UTF8 |
LATIN8 | LATIN8, UTF8 |
LATIN9 | LATIN9, UTF8 |
LATIN10 | LATIN10, UTF8 |
MULE_INTERNAL | MULE_INTERNAL, BIG5 , EUC_CN , EUC_JP , EUC_KR , EUC_TW , ISO_8859_5 , KOI8R , LATIN1 to LATIN4 , SJIS , WIN866 , WIN1250 , WIN1251 |
SJIS | не поддерживается как серверная кодировка |
SHIFT_JIS_2004 | не поддерживается как серверная кодировка |
SQL_ASCII | любая (перекодировка не будет выполнена) |
UHC | не поддерживается как серверная кодировка |
UTF8 | все поддерживаемые кодировки |
WIN866 | WIN866, ISO_8859_5 , KOI8R , MULE_INTERNAL , UTF8 , WIN1251 |
WIN874 | WIN874, UTF8 |
WIN1250 | WIN1250, LATIN2 , MULE_INTERNAL , UTF8 |
WIN1251 | WIN1251, ISO_8859_5 , KOI8R , MULE_INTERNAL , UTF8 , WIN866 |
WIN1252 | WIN1252, UTF8 |
WIN1253 | WIN1253, UTF8 |
WIN1254 | WIN1254, UTF8 |
WIN1255 | WIN1255, UTF8 |
WIN1256 | WIN1256, UTF8 |
WIN1257 | WIN1257, UTF8 |
WIN1258 | WIN1258, UTF8 |
Чтобы включить автоматическую перекодировку символов, необходимо сообщить PostgreSQL кодировку, которую вы хотели бы использовать на стороне клиента. Это можно выполнить несколькими способами:
Если перекодировка определённого символа невозможна (предположим, выбраны EUC_JP
для сервера и LATIN1
для клиента, и передаются некоторые японские иероглифы, не представленные в LATIN1
), возникает ошибка.
Если клиентская кодировка определена как SQL_ASCII
, перекодировка отключается вне зависимости от кодировки сервера. Что же касается сервера, не стоит использовать SQL_ASCII
, если только вы не работаете с данными, которые полностью соответствуют ASCII.
23.3.4. Дополнительные источники информации
Рекомендуемые источники для начала изучения различных видов систем кодирования.
Ascii для кодировки кириллицы (CP855)
Американский стандартный код для обмена информацией ( ASCII ) — широко используемая система кодирования символов , представленная в 1963 году.
Исходный набор символов , который теперь называется стандартным набором символов, изначально состоял из 128 символов (7-битный код). Первые 32 символа — это управляющие символы (также называемые непечатаемыми символами), которые используются для управления потоками данных, а также такими устройствами, как принтеры.Позже он был расширен для поддержки 256 символов (8-битный код), чтобы обеспечить языковые символы, различные символы, а также символы для рисования прямоугольников: элементы, используемые для целей презентации, позволяющие рисовать различные типы рамок и прямоугольников. Символы в диапазоне 128–255 называются расширенным ASCII.
Кодовая страница 855 — это альтернативная кодовая страница , используемая для написания языков на основе кириллицы: белорусский, боснийский, болгарский, македонский, русский, сербский, украинский (славянские языки) и казахский, киргизский, молдавский, монгольский, таджикский, узбекский ( неславянский).Он не очень популярен, наиболее широко используется кодовая страница 866. Только расширенный набор символов отличается от исходной кодовой страницы, причем как управляющие символы, так и стандартный набор символов представляют собой простой ASCII.
Таблица символов ниже показывает графическое представление каждого символа с точностью до пикселя вместе с текстовым описанием.
Управляющие символы (0 — 31):
Dec | Hex | Char | Описание | Dec | Hex | Char | Описание |
0 | 0 | NUL (Null) | 16 | 10 | DLE (Выход из канала передачи данных) | ||
1 | 1 | SOH (начало заголовка) | 17 | 11 | DC1 (Управление устройством 1) | ||
2 | 2 | STX ( Начало текста) | 18 | 12 | DC2 (Управление устройством 2) | ||
3 | 3 | ETX (Конец текста) | 19 | 13 | DC3 (Управление устройством 3 ) | ||
4 | 4 | EOT (конец передачи) | 20 | 14 | DC4 (Device Control 4) | ||
5 | 5900 25 | ENQ (запрос) | 21 | 15 | NAK (отрицательное подтверждение) | ||
6 | 6 | ACK (подтверждение) | 22 | 16 | SYN (синхронный холостой ход) | ||
7 | 7 | BEL (Bell) | 23 | 17 | ETB (конец блока передачи) | ||
8 | 8 | BS (BackSpace) | 24 | 18 | CAN (отмена) | ||
9 | 9 | HT (горизонтальная таблица) | 25 | 19 | EM (конец среды) | ||
10 | A | LF (перевод строки) | 26 | 1A | SUB (замена) | ||
11 | B | VT (вертикальное табулирование) | 27 | 1B | ESC (выход) | ||
12 | C | FF (подача формы) | 28 | 1C | FS (разделитель файлов) | ||
13 | D | CR (Возврат каретки) | 29 | 1D | GS (Разделитель групп) | ||
14 | E | SO (Shift Out) | 30 | 1E | RS (Разделитель записей) | ||
15 | F | SI (сдвиг внутрь) | 31 | 1F | US (разделитель единиц) |
Стандартный набор символов (32-127):
Dec | Hex | Char | Описание | Dec | Hex | Char | Описание |
32 | 20 | Пространство | 80 | 50 | Верхний корпус P | ||
33 | 21 | Восклицательный знак | 81 | 51 | Верхний корпус Q | ||
34 | 22 | Котировальный знак | 82 | 52 | Верхний корпус R | ||
35 | 23 | Хеш | 83 | 53 | Верхний корпус S | ||
36 | 24 | Доллар | 84 | 54 | Верхний корпус T | ||
37 | 25 | Процент | 85 | 55 | Верхний ок. se U | ||
38 | 26 | Ampersand | 86 | 56 | Верхний корпус V | ||
39 | 27 | Апостроф | 87 | 57 | Верхний корпус W | ||
40 | 28 | Открытый кронштейн | 88 | 58 | Верхний корпус X | ||
41 | 29 | Закрытый кронштейн | 89 | 59 | Верхний корпус Y | ||
42 | 2A | Asterisk | 90 | 5A | Верхний корпус Z | ||
43 | 2B | Plus | 91 | 5B | Открытый квадратный кронштейн | ||
44 | 2C | Запятая | 92 | 5C | Обратная косая черта | ||
45 | 2D | Чертеж | 93 | 5D | Закрытый квадратный кронштейн | ||
46 | 2E | Полная остановка | 94 | 5E | Каретка | ||
47 | 2F | Слэш | 95 | 5F | Подчеркивание | ||
48 | 30 | Ноль | 96 | 60 | Могильный акцент | ||
49 | 31 | Один | 97 | 61 | Нижний корпус a | ||
50 | 32 | Два | 98 | 62 | Нижний корпус b | ||
51 | 33 | Три | 99 | 63 | Нижний корпус c | ||
52 | 34 9002 5 | Четыре | 100 | 64 | Нижний корпус d | ||
53 | 35 | Пять | 101 | 65 | Нижний корпус e | ||
54 | 36 | Шесть | 102 | 66 | Нижняя часть корпуса f | ||
55 | 37 | Семь | 103 | 67 | Нижняя часть корпуса g | ||
56 | 38 | Восемь | 104 | 68 | Нижняя часть корпуса h | ||
57 | 39 | Девять | 105 | 69 | Нижняя часть корпуса i | ||
58 | 3A | Колонка | 106 | 6A | Нижний регистр j | ||
59 | 3B | Точка с запятой | 107 | 6B | Нижняя часть корпуса k | ||
60 | 3C | Менее | 108 | 6C | Нижняя часть корпуса l | ||
61 | 3D | Знак равенства | 109 | 6D | Нижний регистр m | ||
62 | 3E | Больше чем | 110 | 6E | Нижний регистр n | ||
63 | 3F | Вопросительный знак | 111 | 6F | Нижняя часть корпуса o | ||
64 | 40 | At | 112 | 70 | Нижняя часть корпуса p | ||
65 | 41 | Верхняя часть корпуса A | 113 | 71 | Нижний корпус q | ||
66 | 42 | Верхний корпус B | 9002 4 11472 | Нижний корпус r | |||
67 | 43 | Верхний корпус C | 115 | 73 | Нижний корпус s | ||
68 | 44 | Верхний корпус D | 116 | 74 | Нижняя часть корпуса t | ||
69 | 45 | Верхняя часть корпуса E | 117 | 75 | Нижняя часть корпуса u | ||
70 | 46 | Верхняя часть корпуса F | 118 | 76 | Нижняя часть корпуса v | ||
71 | 47 | Верхняя часть корпуса G | 119 | 77 | Нижняя часть корпуса w | ||
72 | 48 | Верхний корпус H | 120 | 78 | Нижний корпус x | ||
73 | 49 | Верхний корпус e I | 121 | 79 | Нижняя часть корпуса y | ||
74 | 4A | Верхняя часть корпуса J | 122 | 7A | Нижняя часть корпуса z | ||
75 | 4B | Верхний кожух K | 123 | 7B | Открытый раскос | ||
76 | 4C | Верхний кожух L | 124 | 7C | Труба | ||
77 | 4D | Верхняя часть M | 125 | 7D | Закрывающая скоба | ||
78 | 4E | Верхняя часть N | 126 | 7E | Тильда | ||
79 | 4F | Верхняя case O | 127 | 7F | Удалить |
Расширенный набор символов (128-255):
Dec | Hex | Char | Описание | Dec | Hex | Char | Описание |
128 | 80 | Кириллический нижний регистр dje | 192 | C0 | Коробка рисунки светятся и справа | ||
129 | 81 | Верхний регистр кириллицы DJE | 193 | C1 | Чертежи светятся и горизонтально | ||
130 | 82 | Нижний регистр кириллицы gje | 194 | C2 | Чертежи коробки с подсветкой вниз и горизонтально | ||
131 | 83 | Верхний регистр с кириллицей GJE | 195 | C3 | Чертежи коробки с подсветкой вертикально и справа | ||
132 | 84 | Кириллица в нижнем регистре io | 196 | 900 24 C4Чертежи коробки световой горизонтальный | |||
133 | 85 | Верхний регистр с кириллицей | 197 | C5 | Чертежи коробки светлый вертикальный и горизонтальный | ||
134 | 86 | Кириллический нижний регистр украинский IE | 198 | C6 | Кириллица нижний регистр ka | ||
135 | 87 | Кириллица верхний регистр украинский IE | 199 | C7 | Кириллица верхний регистр KA | ||
136 | 88 | Кириллица нижний регистр dze | 200 | C8 | Чертежи коробки, сдвоенные вверх и вправо | ||
137 | 89 | Верхний регистр кириллицы DZE | 201 | C9 | Чертежи коробки, сдвоенные вниз и вправо | ||
138 | 8A 900 25 | Нижний регистр кириллицы белорусско-украинский i | 202 | CA | Чертежи боксов, сдвоенные и горизонтальные | ||
139 | 8B | Верхний регистр кириллицы белорусско-украинский I | 203 | CB | Чертежи коробки, сдвоенные вниз и горизонтально | ||
140 | 8C | Нижний регистр кириллицы yi | 204 | CC | Чертежи коробки двойные вертикальные и правые | ||
141 | 8D | Кириллица верхний регистр YI | 205 | CD | Чертежи коробки двойная горизонтальная | ||
142 | 8E | Кириллица нижняя часть je | 206 | CE | Чертежи коробки двойная вертикальная и горизонтальная | ||
143 | 8F | Верхний регистр с кириллицей JE | 90 024 207CF | Знак валюты | |||
144 | 90 | Строчная кириллица lje | 208 | D0 | Строчная кириллица el | ||
145 | 91 | Кириллица верхний регистр LJE | 209 | D1 | Верхний регистр кириллицы EL | ||
146 | 92 | Нижний регистр кириллицы nje | 210 | D2 | Нижний регистр кириллицы em | ||
147 | 93 | Верхний регистр кириллицы NJE | 211 | D3 | Верхний регистр кириллицы EM | ||
148 | 94 | Кириллица нижний регистр tshe | 212 | D4 | Кириллица нижний регистр | ||
149 | 95 | Верхний регистр с кириллицей TSHE | 2 13 | D5 | Верхний регистр кириллицы EN | ||
150 | 96 | Нижний регистр кириллицы kje | 214 | D6 | Нижний регистр кириллицы o | ||
151 | 97 | Верхний регистр с кириллицей KJE | 215 | D7 | Верхний регистр с кириллицей O | ||
152 | 98 | Кириллица с коротким регистром u | 216 | D8 | Нижний регистр с кириллицей pe | ||
153 | 99 | Верхний регистр кириллицы короткий U | 217 | D9 | Чертежи коробки светятся и слева | ||
154 | 9A | Нижний регистр кириллицы дже | 218 | DA | Чертежи коробки светлые и правые | ||
155 | 9B | Кириллица u pper case DZHE | 219 | DB | Полный блок | ||
156 | 9C | Кириллический нижний регистр yu | 220 | DC | Нижний полублок | ||
157 | 9D | Верхний регистр кириллицы YU | 221 | DD | Верхний регистр кириллицы PE | ||
158 | 9E | Жесткий знак нижнего регистра кириллицы | 222 | DE | Нижний регистр кириллицы ya | ||
159 | 9F | Кириллический верхний регистр жесткий знак | 223 | DF | Верхний полублок | ||
160 | A0 | Кириллический нижний регистр a | 224 | E0 | Верхний регистр с кириллицей YA | ||
161 | A1 | Верхний регистр с кириллицей A 9 0025 | 225 | E1 | Нижний регистр кириллицы er | ||
162 | A2 | Нижний регистр кириллицы be | 226 | E2 | Верхний регистр кириллицы ER | ||
163 | A3 | Верхний регистр с кириллицей BE | 227 | E3 | Нижний регистр с кириллицей es | ||
164 | A4 | Кириллица с нижним регистром tse | 228 | E4 | Кириллица с верхним регистром ES | ||
165 | A5 | Верхний регистр кириллицы TSE | 229 | E5 | Нижний регистр кириллицы te | ||
166 | A6 | Нижний регистр кириллицы de | 230 | E6 | Cyrillic верхняя часть корпуса TE | ||
167 | A7 | кириллица верхняя часть корпуса DE 900 25 | 231 | E7 | Нижний регистр кириллицы u | ||
168 | A8 | Нижний регистр кириллицы т.е. | 232 | E8 | Верхний регистр кириллицы U | ||
169 | A9 | Верхний регистр кириллицы IE | 233 | E9 | Нижний регистр кириллицы | ||
170 | AA | Нижний регистр кириллицы ef | 234 | EA | Верхний регистр кириллицы ZHE | 171 | AB | Верхний регистр кириллицы EF | 235 | EB | Нижний регистр кириллицы ve |
172 | AC | Кириллица нижний регистр ghe | 236 | EC | Кириллица верхняя часть корпуса VE | ||
173 | AD | кириллица верхняя часть корпуса GHE | 237 | ED | Мягкий знак нижнего регистра кириллицы | ||
174 | AE | Двойные угловые кавычки, указывающие влево | 238 | EE | Мягкий знак верхнего регистра кириллицы | ||
175 | AF | Двойные угловые кавычки, указывающие вправо | 239 | EF | Цифровой знак | ||
176 | B0 | Светлый оттенок | 240 | F0 | Мягкий перенос | ||
177 | B1 | Средний оттенок | 241 | F1 | Нижний регистр кириллицы yeru | ||
178 | B2 | Темный оттенок | 242 | F2 | Верхний регистр кириллицы | ||
179 | B3 | Чертежи коробки световой вертикальный 90 025 | 243 | F3 | Нижний регистр с кириллицей ze | ||
180 | B4 | Чертежи коробки светлые вертикально и слева | 244 | F4 | Верхний регистр с кириллицей ZE | ||
181 | B5 | Нижний регистр кириллицы ha | 245 | F5 | Нижний регистр кириллицы sha | ||
182 | B6 | Верхний регистр кириллицы HA | 246 | F6 | Верхний регистр кириллицы SHA | ||
183 | B7 | Нижний регистр кириллицы i | 247 | F7 | Нижний регистр кириллицы e | ||
184 | B8 | Верхний регистр кириллицы I | 248 | F8 | 900Верхний регистр с кириллицей e | ||
185 | B9 | Чертежи коробки дубль левая вертикальная и левая | 249 | F9 | Кириллица нижняя ща | ||
186 | BA | Чертежи коробки двойная вертикальная | 250 | FA | Кириллица верхняя ЩА | ||
187 | BB | Чертежи коробки сдвоены вниз и влево | 251 | FB | Кириллица в нижнем регистре che | ||
188 | BC | Чертежи коробки сдвоены вверх и влево | 252 | FC | Верхний регистр с кириллицей CHE | ||
189 | BD | Короткий нижний регистр с кириллицей i | 253 | FD | Знак раздела | ||
190 | BE | Короткий верхний регистр с кириллицей I | 254 | FE | Черный квадрат | ||
191 | BF 90 025 | Чертежи коробки светятся вниз и влево | 255 | FF | Непрерывный интервал |
i18n: списки наборов символов
i18n: списки наборов символовИнтернационализация
Предупреждение: Эта страница больше не поддерживается, и содержащаяся на ней информация устарела и неверна!
Вместо этого вы можете попробовать перейти по следующей ссылке:
Наборы символов, поддерживаемые популярными веб-приложениями (необходимо пересмотреть, чтобы отсеять незарегистрированный материал)
Tango Creator, Браузер Tango 3.0 (Алис Технологии) | Netscape Navigator 3.0 / 4.0 (Netscape) | Microsoft Internet Explorer 5 (Microsoft) | |
---|---|---|---|
Арабский | |||
iso-8859-6 / asmo-708 | × | – | × |
x-mac-арабский | – | – | × |
окна-1256 | × | – | × |
Балтика | |||
iso-8859-4 | – | – | × |
окна-1257 | – | – | × |
Центральноевропейская | |||
iso-8859-2 / latin2 | × | × | × |
x-mac-ce | – | × ¹ | × |
окна-1250 | × | × | × |
Китайский упрощенный | |||
euc-cn | – | – | × |
ГБ 2312 | × | × | × |
гц-гб-2312 | × | × | × |
x-mac-chinesesimp | – | – | × |
сп-936 | × | – | – |
Китайский традиционный | |||
большой5 | × | × | × |
x-mac-chinesetrad | – | – | × |
СП-950 | × | – | – |
сп-932 | × | – | – |
euc-tw | – | × | – |
Кириллица | |||
iso-8859-5 | × | × | × |
кои8-р | × | × | × |
кои8 | × | – | × |
x-mac-кириллица | – | × ¹ | × |
окна-1251 | × | × | × |
Греческий | |||
iso-8859-7 | × | × | × |
x-mac-греческий | – | × ¹ | × |
окна-1253 | × | × | × |
Еврейский | |||
iso-8859-8 * | × | – | × |
iso-8859-8-i | × | – | × |
x-mac-hebrew | – | – | × |
окна-1255 | × | – | × |
Исландский | |||
x-mac исландский | – | – | × |
Японский | |||
euc-jp | × | × | × |
iso-2022-jp | × | × | × |
x-mac-японский | – | – | × |
shift_jis | × | × | × |
корейский | |||
ks_c_5601-1987 / ksc5601 | × | × | × |
euc-kr | – | × | × |
iso-2022-kr | × | × | × |
x-mac-корейский | – | – | × |
Латиница 9 | |||
iso-8859-15 / latin9 | – | – | × |
Мальтийский | |||
iso-8859-3 / latin3 | – | – | × |
Тайский | |||
окна-874 / тис-620 | × | – | × |
Турецкий | |||
iso-8859-9 / latin5 | – | × | × |
x-mac-турецкий | – | × ¹ | × |
окна-1254 | – | – | × |
Юникод | |||
utf-7 | × | × | × |
utf-8 | × | × | × |
iso-10646-ucs-2 | × | × ² | × |
us-ascii | × | × | × |
Вьетнамский | |||
окна-1258 | – | – | × |
Западноевропейская | |||
iso-8859-1 / latin1 | × | × | × |
x-mac-roman | – | × ¹ | – |
Macintosh | – | – | × |
окна-1252 | × | – | × |
Другое | |||
isiri-3342 | × | – | – |
¹ = версия для Macintosh.² = только Navigator 4.0. * = запрещено в HTML 4.0 и новее.
(Эта таблица не является официальной. Она может быть неверной. Ее цель — просто указать наиболее широко поддерживаемые кодировки.) Для Microsoft см. также собственная (более длинная) таблица Microsoft.
Другие браузеры
Мартин Дюрст, ведущий специалист I18N
Веб-мастер
Последнее обновление $ Дата: 2001/12/21 08:33:46 $
Инструмент кодирования / декодирования. Анализируйте проблемы и ошибки кодировки символов.
Что такое кодовая страница?
Кодовая страница — это еще одно название для кодировки символов. Он состоит из таблицы значений который описывает набор символов для определенного языка.
Что такое кодировка символов?
Кодировка символов — это процесс кодирования набора символов в соответствии с системой кодирования.Этот процесс обычно объединяет числа с символами для кодирования информации, которая может использоваться компьютером.
Зачем нужно кодировать символы?
Поскольку компьютеры могут интерпретировать только необработанные нули и единицы (например, 01100110), слова и предложения необходимо кодировать при вводе информации в компьютер. Символы в этих словах и предложениях сгруппированы в набор символов, который компьютер может распознать.
Что такое кодировки символов?
Кодировки символов позволяют нам понять кодировку, используемую в компьютерах.Из-за наличия множества кодировок символов могут возникать ошибки при кодировании с помощью одной кодировки символов и декодировании с помощью другой. Вышеупомянутый инструмент можно использовать для моделирования, если возникнут какие-либо ошибки при кодировании с любой кодировкой символов и декодировании с помощью другой.
Типы кодировок символов
Существует множество кодировок, которые можно использовать для кодирования или декодирования строки символов, включая UTF-8, ASCII и ISO 9959-1.
Примеры популярных кодировок символов:
Хотя это, безусловно, популярные кодировки, которые используются, бывают случаи, когда строки кода кодируются кодировками, которые не так широко используются, например x-IA5-Norgwegian или DOS-720.Это может вызвать путаницу и возможные ошибки, поэтому важно понимать, как уменьшить эти ошибки, предварительно моделируя их с помощью инструмента кодирования / декодирования символов String Functions.
Как использовать инструмент кодирования / декодирования символов
Чтобы использовать инструмент кодирования / декодирования символов String Functions, начните с ввода строки символов в текстовое поле. Затем выберите из раскрывающихся меню, какую систему кодирования и декодирования вы хотите использовать для моделирования.
Посмотрите наш индекс кодировки символов
Для просмотра таблиц кодировки от одной кодировки к другой используйте наш индекс таблицы кодировки символов.
Политика конфиденциальности Карта сайта
Руководство пользователя Глава 6: Поддержка Unicode и не-ASCII
Глава 6. Поддержка Unicode и не-ASCII
6.1 Формат для печати в кавычках
6.2 Символы, отличные от ASCII в заголовках
6.3 Unicode и UTF-8
6.4 Поддержка UTF-8 в AspEmail
6.5 Допустимые значения CharSet
6.1 формат цитируемой печати
AspEmail может отправлять сообщения в алфавитах, отличных от US-ASCII. за счет поддержки формата «Цитата для печати». Этот формат описан в RFC-2045. Идея формата заключается в том, что символы с кодами меньше 33 и больше чем 126 представлены знаком «=», за которым следует двузначное шестнадцатеричное представление. ценности персонажа. Например, десятичное значение 12 (подача формы US-ASCII) представлен как = 0C , а десятичное значение 61 (US-ASCII «=») может быть представлено как = 3D .AspEmail кодирует тело сообщения в формате Quoted-Printable автоматически, если для свойства ContentTransferEncoding установлено значение строка «Quoted-Printable» (регистр букв не имеет значения). Вы также можете установить свойство Charset к соответствующему набору символов. Следующий фрагмент кода отправляет сообщение на русском языке:
<% @ codepage = 1251%>
<%
…
Почта.Кодировка = «Windows-1251»
Mail.Body = «-«.
Mail.ContentTransferEncoding = «Quoted-Printable»
%>Директива <% @ codepage = 1251%> предписывает интерпретатор ASP для обработки жестко запрограммированных символов в сценарии в виде русских символов (1251 — русская кодовая страница). Как результат, свойство Body получит русскую строку Unicode.
6.2 символа, отличного от ASCII, в заголовках
Если вы хотите отправить сообщение с определенными заголовками, такими как Тема: , To: или From: , содержащие символы, отличные от US-ASCII, следует использовать метод Mail.EncodeHeader для кодирования строки символов в соответствии с RFC 1522. Метод принимает один обязательный параметр, строку заголовка, и один необязательный параметр, набор символов, который по умолчанию равен « ISO-8859-1 ».Например:<% @ codepage = 1251%>
<%
Mail.Subject = Mail.EncodeHeader («-«, «Windows-1251»)
Mail.FromName = Mail.EncodeHeader («», «Windows-1251»)
Mail.AddAddress «[email protected]», Mail.EncodeHeader («»)
%>
6.3 Юникод и UTF-8
Из MSDN: «Юникод — это 16-битный стандарт кодировки символов фиксированной ширины, который охватывает практически все символы, обычно используемые на компьютерах сегодня.Это включает в себя большинство письменных языков мира, а также издательские персонажи, математические и технические символы и знаки препинания «.С Unicode.org: «Компьютеры … хранят буквы и другие символы присвоение номера каждому. До изобретения Unicode существовало сотни различных систем кодирования для присвоения этих чисел. Ни одна кодировка не может содержать достаточно символов … Unicode предоставляет уникальный номер для каждого символа, независимо от того, какая платформа, какая программа, на каком языке.»
Например, основная латинская буква «А» имеет шестнадцатеричный код 0041 (65), русская буква имеет код Hex 0416 (1046), а китайский иероглиф имеет код Hex 32A5 (12965).
UTF-8 (формат преобразования Unicode, 8-битная форма кодирования) рекомендуется формат, который будет использоваться для отправки данных на основе Unicode по сетям, в частности, через Интернет. UTF-8 представляет значение Unicode как последовательность из 1, 2 или 3 байтов.
Символы Юникода в диапазоне от 0000 до 007F кодируются просто как байты. 00 до 7F. Это означает, что файлы и строки, содержащие только 7-битный ASCII символы имеют одинаковую кодировку как в ASCII, так и в UTF-8. Следовательно, Unicode 0041 («A») в UTF-8 — это Hex 41.
Символы Юникода в диапазоне от 0080 до 07FF кодируются как последовательность из двух байтов. Например, Unicode 0416 () кодируется как Hex D0 96. Кодируются символы Unicode в диапазоне от Hex 0800 до FFFF. как последовательность из трех байтов.Например, Unicode 32A5 () кодируется как Hex E3 8A A5.
6.4 Поддержка UTF-8 в AspEmail
AspEmail 5.0 предлагает полную поддержку UTF-8 как в теле сообщения, так и в заголовках. Чтобы отправить сообщение в кодировке UTF-8, вы должны установить CharSet свойство к строке « UTF-8 » (регистр не имеет значения), и ContentTransferEncoding на « Quoted-Printable ».Вы также должны передать « UTF-8 » в качестве второго аргумента для EncodeHeader .В следующем примере кода демонстрируется использование UTF-8:
<%
‘изменить на адрес вашего собственного SMTP-сервера
strHost = «smtp.myisp.net»‘Включить UTF-8 -> Перевод Unicode для элементов формы
Session.CodePage = 65001 ‘Код UTF-8Если Запрос («Отправить») «» То
Установите Mail = Server.CreateObject («Persits.MailSender»)
‘введите действительный SMTP-хост
Mail.Host = strHostMail.From = «[email protected]» ‘с адреса
Mail.FromName = Mail.EncodeHeader (Запрос («FromName»), «utf-8»)
Mail.AddAddress Request («Кому»)‘тема сообщения
Mail.Subject = Mail.EncodeHeader (Запрос («Тема»), «utf-8»)‘тело сообщения
Mail.Body = Request («Body»)‘Параметры UTF-8
Почта.CharSet = «UTF-8»
Mail.ContentTransferEncoding = «Quoted-Printable»
Mail.Send ‘отправить сообщение
Response.Write «Сообщение отправлено» & Request («To»)
Конец, если
%>
AspEmail: Unicode.asp
<ТЕЛО>