на главную обучение сертификация статьи литература ссылки гостевая книга
  Список статей Оглавление Текст статьи  

Java: Русские буквы и не только...

Автор:Астахов Сергей
Создан:03.06.2003


2. 8-ми битовые кодировки русских букв

   Вот основные 8-ми битовые кодировки русских букв, получившие распространение:

кодировка основное название в Java ареал распространения
IBM-866 Cp866 MS-DOS, Windows (OEM-кодировка), OS/2
Windows-1251 Cp1251 Windows (Ansi-кодировка)
КОИ-8 KOI8_R Unix, большинство русскоязычных писем в Internet
ISO-8859-5 ISO8859_5 Unix
Macintosh Cyrillic MacCyrillic Mac

   Помимо основного названия можно использовать синонимы. Набор их может отличаться в разных версиях JDK. Вот список от JDK 1.3.1:

кодировка синоним
Cp1251 Windows-1251
Cp866 IBM866
IBM-866
866
CSIBM866
KOI8_R KOI8-R
KOI8
CSKOI8R
ISO8859_5 ISO8859-5
ISO-8859-5
ISO_8859-5
ISO_8859-5:1988
ISO-IR-144
8859_5
Cyrillic
CSISOLatinCyrillic
IBM915
IBM-915
Cp915
Cp915

   Причём синонимы, в отличии от основного имени нечувствительны к регистру символов - такова особенность реализации.

   Стоит отметить, что эти кодировки на некоторых JVM могут отсутствовать. Например, с сайта Sun можно скачать две разные версии JRE - US и International. В US версии присутствует только минимум - ISO-8859-1, ASCII, Cp1252, UTF8, UTF16 и несколько вариаций двухбайтового Unicode. Всё прочее есть только в International варианте. Иногда из-за этого можно нарваться на грабли с запуском программы, даже если ей не нужны русские буквы. Типичная ошибка, возникающая при этом:
  Error occurred during initialization of VM
  java/lang/ClassNotFoundException: sun/io/ByteToCharCp1251
   Возникает она, как не трудно догадаться, из-за того, что JVM, исходя из русских региональных настроек пытается установить кодировку по умолчанию в Cp1251, но, т.к. класс поддержки таковой отсутствует в US версии, закономерно обламывается.


назад оглавление дальше