Intellij Idea неверное кодирование в консольном выпуске

Кажется, это действительно сумасшедший, но я не могу ничего сделать со сломанной кодировкой в ​​консоли моей идеи intellij.

Вещи, которые я сделал, чтобы преодолеть это:

  • Set -Dfile.encoding = UTF-8 и -Dfile.encoding = UTF-8 в идеях idea.exe.vmoptions и idea64.exe.vmoptions(хотя я использую 64-разрядную версию).
  • Добавлено -Dfile.encoding = UTF-8 и -Dfile.encoding = UTF-8 для запуска/отладки конфигурации моего приложения.
  • Измененные параметры > Редактоp > Кодировки файлов Кодирование IDE/Кодирование проекта/Кодировка по умолчанию для файлов свойств в UTF-8.

Если все это сделать, до сих пор нет удачи, и символы не отображаются корректно в консоли. Я попытался отладить метод java.io.PrintStream # println (java.lang.String) и обнаружил, что System.out.textOut.out.se.cs равно окнам-1251. Не знаю, откуда такое значение.

Эта проблема беспокоила меня в течение длительного периода времени, и я не смог найти что-либо в Интернете, которое могло бы мне помочь.

Заранее благодарим за помощь.

Ответ 1

попробуйте

-Dconsole.encoding=UTF-8

вместо

-Dfile.encoding=UTF-8

Ответ 2

Моя теория заключается в том, что ваш файл класса java использует кодировку "windows-1251", и вам нужно установить ее "UTF-8".

смотрит скриншоты ниже. введите описание изображения здесь введите описание изображения здесь

Чтобы reset кодировать все файлы, вы можете вручную отредактировать encodings.xml. введите описание изображения здесь Вы можете изменить кодировку файла по умолчанию в диалоговом окне настроек. введите описание изображения здесь

Ответ 3

Это работает для меня.

  1. Закройте свою интеллигентную идею
  2. Найдите и откройте файл idea.exe.vmoptions внутри установленной идеи, например: "C:\Program Files\JetBrains\IntelliJ IDEA 2018.3.2\bin". После добавить следующую строку: -Dfile.encoding = UTF-8
  3. (Необязательно), если у вас есть файл idea64.exe.vmoptions, добавьте эту же строку.
  4. Начните интеллигентную идею.

Я надеюсь, что это поможет вам.

Извините за мой английский. Я еще учусь. (Спасибо @MrPromethee за предложения)

Ответ 4

В моем случае изучение System.out.textOut.out.se.cs в debug намекало, что IDEA взял аргументы maven surefire для каждой конфигурации запуска JUnit:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <!-- force 7-bit default encoding to ensure that nothing depends on it -->
        <argLine>-Dfile.encoding=ASCII</argLine>
    </configuration>
</plugin>

Я решил это, добавив -Didea.maven.surefire.disable.argLine=true в файл idea64.exe.vmoptions.

См. также https://www.jetbrains.com/help/idea/configuring-output-encoding.html.