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] sergiej.livejournal.com 2012-06-02 08:47 am (UTC)(link)
Что мешает в потомке создать аналогичный конструктор?

[identity profile] oldmann.livejournal.com 2012-06-02 08:55 am (UTC)(link)
ребе, за несоблюдение шаббата выражаю вам порицание от лица всея раввината!

волосы вырастут на ладонях!

[identity profile] nivanych.livejournal.com 2012-06-02 08:35 pm (UTC)(link)
На ушах!
С прозеленью!

[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. И помним про больших и малых индейцев. Ох... Сколько крови попорчено.

[identity profile] vp.livejournal.com 2012-06-02 09:26 am (UTC)(link)
В жабе ж вроде то же самое, юникод и кодирование в целевую кодировку.

[identity profile] volodymir-k.livejournal.com 2012-06-02 09:39 am (UTC)(link)
> нужно руками открывать FileInputStream, передавать его в конструктор InputStreamReader с соответствующей кодировкой

+

> унаследованный класс таких конструкторов не содержит

The constructors of this class assume that the default character encoding
но это зло и его надо избегать


кстати пора б уже перейти на 1.7 яву, а не на 1.5 сидеть

[identity profile] w00dy.livejournal.com 2012-06-02 03:39 pm (UTC)(link)
у нас жаба 7-я половину софта поломала. Так что я понимаю людей сидящий до сих пор на 1.4.
Edited 2012-06-02 15:39 (UTC)

[identity profile] baramin.livejournal.com 2012-06-02 04:44 pm (UTC)(link)
С этого момента подробнее! Я записываю!

[identity profile] w00dy.livejournal.com 2012-06-02 04:52 pm (UTC)(link)
Та откуда я знаю подробности. У нас есть для сборки используется пачка софта написаного на жабе (софт не наш, если чо). После апгрейда до 7-й жабы половина отвалилась к чертям. В чём причина разбираться было лениво, откатились назад на 6-ю жабу.

[identity profile] baramin.livejournal.com 2012-06-02 04:58 pm (UTC)(link)
Серьезно изменился javah - это из того, что могло бы затронуть билд-систему. Но это лечится ключами.

[identity profile] artureg.livejournal.com 2012-06-02 10:07 am (UTC)(link)
так же