metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-06-02 11:14 am

А расскажите мне за кодировки в Java?

В дотнете я понимаю - внутри сплошной юникод, кодировка - аспект возникающий только при преобразовании "строка<->массив байт(или файл)". А вот в Java как?
Вот есть документация на соответствующий класс:
http://docs.oracle.com/javase/1.5.0/docs/api/java/io/InputStreamReader.html
Там есть конструктора, принимающие Charset или charsetName но унаследованный класс таких конструкторов не содержит, т.е. я так понимаю - нужно руками открывать FileInputStream, передавать его в конструктор InputStreamReader с соответствующей кодировкой, а его потом еще завернуть заодно в BufferedReader?

[identity profile] guamoka.livejournal.com 2012-06-02 09:26 am (UTC)(link)
В дотнете я понимаю - внутри сплошной юникод, кодировка - аспект возникающий только при преобразовании "строка<->массив байт(или файл)". А вот в Java как?

вы наверное удивитесь, но то же самое.

char: The char data type is a single 16-bit Unicode character. It has a minimum value of '\u0000' (or 0) and a maximum value of '\uffff' (or 65,535 inclusive).

а чарсет скорее относится к читаемому текстовому файлу (потоку)

и вообще http://www.javapractices.com/topic/TopicAction.do?Id=42

[identity profile] baramin.livejournal.com 2012-06-02 04:47 pm (UTC)(link)
Внутре у нее jchar. Читаем доку про JNI. И помним про больших и малых индейцев. Ох... Сколько крови попорчено.