Страницы

Поиск по вопросам

пятница, 12 июля 2019 г.

Кодировка UTF-8, UTF-16 в Java

Хочу вывести греческую букву 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)); } }

Комментариев нет:

Отправить комментарий