кодировать œ правильно с UTF-8 - Java - PullRequest
0 голосов
/ 15 мая 2018

У меня проблемы с записью следующей строки в файл. Особенно с символом «œ». Проблема появляется на моем локальном компьютере (Windows 7) и на сервере (Linux)

Строка: "Cœurs d’artichauts grillées"

  1. Работает ( œ отображает корректно, а апостроф переводится в знак вопроса ):

    Files.write(path, content.getBytes(StandardCharsets.ISO_8859_1));
    
  2. Не работает ( результат в файле ):

    Files.write(path, content.getBytes(StandardCharsets.UTF_8));
    

Согласно первому ответу на этот вопрос , UTF-8 должен также быть в состоянии правильно кодировать œ. У кого-нибудь есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 15 мая 2018

Ваш второй подход работает

String content = "Cœurs d’artichauts grillées";
Path path = Paths.get("out.txt");
Files.write(path, content.getBytes(Charset.forName("UTF-8")));

Создает файл out.txt с:

Cœurs d’artichauts grillées

Скорее всего, используемый вами редактор неправильно отображает содержимое. Возможно, вам придется заставить ваш редактор использовать кодировку UTF-8 и шрифт, отображающий œ и другие символы UTF-8. Notepad ++ или IntelliJ IDEA работают "из коробки".

...