Кодировки в Java

java string utf8 кодировка bom

Основные правила использования кодировок

  1. работать надо с UTF8 без BOM.
  2. следует помнить в какой кодировке написан текст программы (желательно UTF8).
  3. запомните в какой кодировке были записаны данные в считываемом файле.
  4. в Java надо работать с кодовыми точками (Code Points - тип int - 32 бита), а не с char’ами - 16 бит.
  5. надо знать в какой кодировке выводить (отображать) в консоли.
  6. следует указывать кодировку явно аргументом при компиляции и запуске программ java.

Как считывать файл?

FileInputStream fis = new FileInputStream("test.txt");
InputStreamReader in = new InputStreamReader(fis, "UTF-8"); 

Полезные ссылки:

  1. Кодовые точки Unicode и русские символы в исходных кодах и программах Java 
  2. Cтроки в Java. Взаимная конвертация String, StringBuffer, StringBuilder, char, byte 
  3. Лекция 4.1: Ввод/вывод / Кодировки 
  4. Символьный тип в Java 
  5. Unicode “Code charts” 
  6. Basic Multilingual Plane 
  7. Коммент antonio про BOM 
  8. Вот перевод String API v7 
  9. И самая важная цитата “Файл не имеет кодировок. Байты, которые лежат в файле, имеют кодировку”