Хочу вывести греческую букву U (https://unicode-table.com/en/01AF/) - получаю знаки вопроса. Вывожу как System.out.println('\uC6AF');. Пробовал и UTF-8 и UTF-16 и с помощью chcp - ничего не помогает. Как правильно работать с Unicode?
Ответ
Внимательнее читайте свою же ссылку
Там написано
Unicode number U+01AF
то есть в Java надо написать
System.out.println('\u01AF');
Чтобы выводилось в правильной кодировке - установите кодировку проекта UTF-8 в IDE
В IDEA это делается так: Settings - Editor - File Encodings
Примечание: Если есть проблема с кодировкой самой консоли, выводить можно в файл.
Полностью код выглядит так:
import java.io.FileOutputStream;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
// "ISO-8859-1" - западноевропейские языки
// "windows-1251" - стандартная Windows (русская)
// "UTF-8" - юникод
String systemEncoding = "UTF-8";
String text =
'\u01AF' + " - Latin Capital Letter U with Horn
" +
'\u0168' + " - Latin Capital Letter U with Tilde
" +
'\u0055' + " - Latin Capital Letter U
";
// вывод в консоль
System.out.printf(text, systemEncoding);
// вывод в файл
FileOutputStream fileOutputStream =
new FileOutputStream("types_of_u_letters.txt", false);
fileOutputStream.write(text.getBytes(systemEncoding));
}
}
Комментариев нет:
Отправить комментарий