Иллюстрированный самоучитель по Java


         

Все эти данные выводятся на


    System.out.println(msg + "Cp1251 -> Cp866 : " + winLikeDOS); 

    System.out.println(msg + "Cp1251 -> KOI8-R: " + winLikeUNIX); 

    System.out.println(msg + "Cp866 -> Cp1251: " + dosLikeWin); 

    System.out.println(msg + "Cp866 -> Cp866 : " + dosLikeDOS); 

    System.out.println(msg + "Cp866 -> KOI8-R: " + dosLikeUNIX); 

    System.out.println(msg + "KOI8-R -> Cpl251: " + unixLikeWin); 

    System.out.println(msg + "KOI8-R -> Cp866 : " + unixLikeDOS); 

    System.out.println(msg + "KOI8-R -> KOI8-R: " + unixLikeUNIX); 

  } 

}

Все эти данные выводятся на консоль MS Windows 2000, как показано на рис. 5.1.

В первые три строки консоли выводятся массивы байтов

byteCP1251

,

byteCP866

и

byteKOI8R

без преобразования в Unicode. Это выполняется методом

write()

класса

FilterOutputStream

из пакета

java.io

.

В следующие три строки консоли выведены строки Java, полученные из массива символов

с[]

, массива

byteCP866

и строки-константы.

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

Вы видите, что на консоль правильно выводится только массив в кодировке СР866, записанный в строку с использованием кодовой таблицы СР1251.

В чем дело? Здесь свой вклад в проблему русификации вносит вывод потока символов на консоль или в файл.





Рис. 5.1.


Вывод кириллической строки на консоль MS Windows 2000

Как уже упоминалось в

главе 1,

в консольное окно

Command Prompt


операционной системы MS Windows текст выводится в кодировке СР866.

Для того чтобы учесть это, слова "\"Россия\" в" преобразованы в массив байтов, содержащий символы в кодировке СР866, а затем переведены в строку

msg

.

В предпоследней строке рис. 5.1 сделано перенаправление вывода программы в файл


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





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