Кодировки в Java
java
string
utf8
кодировка
bom
Основные правила использования кодировок
- работать надо с UTF8 без BOM.
- следует помнить в какой кодировке написан текст программы (желательно UTF8).
- запомните в какой кодировке были записаны данные в считываемом файле.
- в Java надо работать с кодовыми точками (Code Points - тип int - 32 бита), а не с char’ами - 16 бит.
- надо знать в какой кодировке выводить (отображать) в консоли.
- следует указывать кодировку явно аргументом при компиляции и запуске программ java.
Как считывать файл?
FileInputStream fis = new FileInputStream("test.txt");
InputStreamReader in = new InputStreamReader(fis, "UTF-8");
Полезные ссылки:
- Кодовые точки Unicode и русские символы в исходных кодах и программах Java
- Cтроки в Java. Взаимная конвертация String, StringBuffer, StringBuilder, char, byte
- Лекция 4.1: Ввод/вывод / Кодировки
- Символьный тип в Java
- Unicode “Code charts”
- Basic Multilingual Plane
- Коммент antonio про BOM
- Вот перевод String API v7
- И самая важная цитата “Файл не имеет кодировок. Байты, которые лежат в файле, имеют кодировку”