Я потратил почти 3 дня, чтобы выяснить, почему в большом проекте результат
System.out.println( "你好" );
отображается как "??"
а в другом проекте, построенном с нуля, оно отображается как «你好».
Я использую IntellijIdea, НО то же самое происходит со мной при запуске из jar-файла с использованием
java -jar ...
Единственное различие между этими двумя проектами заключается в системе сборки: первая использует gradle, а вторая - нет (просто простой проект). Второе отличие заключается в выводе следующего кода
System.out.println("Charset.defaultCharset=" +
Charset.defaultCharset());
Первый тип "Charset.defaultCharset = windows-1252", второй "Charset.defaultCharset = UTF-8"
Ну, я читал о:
кодировка в IntellijIdea, все настройки между 2 проектами одинаковы
(Настройки → Кодировка файла → Кодировка проекта → Кодировка IDE)
О кодировке настроек файла в правом нижнем углу в Idea
- Пробовал
-Dfile.encoding = UTF-8, а затем
-Dconsole.encoding = UTF-8 в конфигурациях отладки для всех экземпляров gradle
в консоли cmd сделал
set JAVA_TOOL_OPTIONS=-Dconsole.encoding=UTF8
set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
Играется со свойствами gradle в gradle.build
org.gradle.jvmargs='-Dfile.encoding=UTF-8'
systemProp.file.encoding=UTF-8
изменил кодировку в командной строке через
chcp 65001
Эти усилия сводят меня на нет. Есть идеи?
Кстати, это почти тот же вопрос, но без ответа. Я не могу написать там из-за низкой репутации
Intellij Idea неверное кодирование в выводе консоли
изображение с настройками в проекте, которые неправильно отображают вывод