Java Platform, Enterprise Edition (Java EE) 8
Учебник по Java EE

Назад Вперёд Содержание

Наборы и кодировки символов

В следующих разделах описываются наборы и кодировки символов.

Здесь рассматриваются следующие темы:

Наборы символов

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

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

Unicode определяет стандартизированный универсальный набор символов, который можно расширять добавлением дополнений. Когда кодировка исходного файла программы Java не поддерживает Unicode, вы можете представлять символы Unicode в качестве escape-последовательностей, используя запись `\\u`XXXX, где XXXX — 16-разрядное представление символа в шестнадцатеричном формате. Например, испанская версия файла сообщения может использовать Unicode для символов, отличных от ASCII, следующим образом:

admin.nav.main=P\u00e1gina principal de administraci\u00f3n

Кодировки символов

Кодировка символов отображает набор символов в единицы определённой ширины и определяет сериализацию байтов и правила упорядочения. Многие наборы символов имеют более одной кодировки. Например, Java-программы могут представлять японские наборы символов, используя, среди прочего, кодировки EUC-JP или Shift-JIS. Каждая кодировка имеет правила для представления и сериализации набора символов.

Серия ISO 8859 определяет 13 кодировок символов, которые могут представлять тексты на десятках языков. Каждая кодировка ISO 8859 может содержать до 256 символов. ISO-8859-1 (Latin-1) содержит набор символов ASCII, символы с диакритическими знаками (акценты, диерезисы, седилы, циркумфлексы и т. д.) и дополнительные символы.

UTF-8 (формат преобразования Unicode, 8-битная форма) представляет собой кодировку символов переменной ширины, которая кодирует 16-битные символы Unicode в виде от одного до четырёх байтов. Байт в UTF-8 эквивалентен 7-битному ASCII, если его старший бит равен нулю. В противном случае символ содержит переменное число байтов.

UTF-8 совместим с большинством существующего в веб контента и обеспечивает доступ к набору символов Unicode. Текущие версии браузеров и почтовых клиентов поддерживают UTF-8. Кроме того, многие веб-стандарты указывают кодировку UTF-8. Например, UTF-8 является одним из двух обязательных кодировок для документов XML (другой — UTF-16).

Веб-компоненты обычно используют PrintWriter для получения ответов. PrintWriter по умолчанию кодирует с использованием ISO-8859-1. Сервлеты также могут выводить бинарные данные, используя классы OutputStream, которые не выполняют кодирование. Приложение, использующее набор символов, который не может использовать кодировку по умолчанию, должно явно установить другую кодировку.


Назад Вперёд Содержание
Логотип Oracle  Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены. Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)