Терминал VS Code неправильно печатает все символы в моем Java-коде

У меня есть простой код, который должен печатать эти символы

public class App {
    public static void main(String[] args) throws Exception {
        System.out.print("名 é à è €");
    }
}

Но всякий раз, когда я запускаю и отлаживаю свой проект в VS Code, вывод в терминале следующий:

Терминал VS Code неправильно печатает все символы в моем Java-коде

Я попытался ввести chcp 65001, чтобы исправить это, но это не решило проблему, и вот результат:

Терминал VS Code неправильно печатает все символы в моем Java-коде

Я попытался сделать это за пределами VS Code, выполнив javac и java, и вот что у меня получилось:

Без chcp 65001:

Терминал VS Code неправильно печатает все символы в моем Java-коде

С chcp 65001:

Терминал VS Code неправильно печатает все символы в моем Java-коде

Вот моя версия Javac: javac 22.0.1

ваш последний скриншот не показывает, что он работает?

starball 14.06.2024 17:56

Да, это работает, но не в терминале vscode, как я уже сказал.

Tetex Corp 15.06.2024 01:20

что, если вы просто запустите echo '名 é à è €' в оболочке встроенного терминала VS Code?

starball 15.06.2024 01:42

Он работает нормально, значит, это проблема Java-компилятора?

Tetex Corp 15.06.2024 16:11
отредактируйте, чтобы добавить вывод javac --version
starball 15.06.2024 16:49
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
83
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

эта проблема может быть причиной ошибки кодирования. По умолчанию vscode использует кодировку UTF-8, а компьютер — GBK. Я попробовал изменить настройки компьютера, чтобы все работало нормально:

  1. Зайдите в настройки компьютера, выберите Time&Language, выберите Language&region, Administrative language settings, Change system locale и отметьте версию Beta.
  2. Перезапустите vscode, чтобы попытаться запустить код.

Оно работает! Но у меня есть один вопрос: поскольку эта функция находится в стадии бета-тестирования, может ли она сломать какой-то текст приложения?

Tetex Corp 18.06.2024 00:19

Привет, бета-версия может оказать некоторое влияние на систему. Вы также можете попробовать добавить его в файл settings.json "terminal.integrated.env.windows": { "JAVA_TOOL_OPTIONS": "-Dfile.encoding=UTF-8" }. Затем перезапустите vscode после сохранения и повторите попытку.

Jeanneli 18.06.2024 05:19

Другие вопросы по теме