Как создать строку. Сцепление строк.
Все эти данные выводятся на консоль MS Windows 2000, как показано на рис. 5.1.
Рис. 5.1. Вывод кириллической строки на консоль MS Windows 2000
В первые три строки консоли выводятся массивы байтов byteCP1251, byteCP866 и byteKOI8R без преобразования в Unicode. Это выполняется методом write() класса FilterOutputStream из пакета java.io.
В следующие три строки консоли выведены строки Java, полученные из массива символов с[], массива byteCP866 и строки-константы.
Следующие строки консоли содержат преобразованные массивы.
Вы видите, что на консоль правильно выводится только массив в кодировке СР866, записанный в строку с использованием кодовой таблицы СР1251.
В чем дело? Здесь свой вклад в проблему русификации вносит вывод потока символов на консоль или в файл.
Как уже упоминалось в главе 1, в консольное окно Command Prompt операционной системы MS Windows текст выводится в кодировке СР866.
Для того чтобы учесть это, слова "\"Россия\" в" преобразованы в массив байтов, содержащий символы в кодировке СР866, а затем переведены в строку msg.
В предпоследней строке рис. 5.1 сделано перенаправление вывода программы в файл codes.txt. В MS Windows 2000 вывод текста в файл происходит в кодировке СР1251. На рис. 5.2 показано содержимое файла codes.txt в окне программы Notepad.