У меня большая проблема с моим компьютером, когда я пытаюсь скомпилировать исходный код, сделанный на языке Java, отсюда большое разочарование:
Переменная типа String плохо читается и интерпретируется компилятор и печатает квадраты вместо специальных символов.
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Name:");
String name = sc.nextLine();
System.out.println(name);
}
}Результат:
Мои попытки были:
Измените файл конфигурации «netbeans.conf» в папке файлов IDE, расположенной в проводнике.
Установите несколько версий среды IDE NetBeans, чтобы проверить, возникает ли эта проблема во всех версиях. Да, это происходит во всех версиях, и я перепробовал все варианты конфигурации программы.
Удалите и установите версию JDK на моем компьютере, а также убедитесь, что я также установил JRE на свой компьютер, чтобы увидеть, была ли проблема решена после установки всех этих программ. Ничего не разрешилось и безуспешно. Проблема осталась при компиляции этого небольшого кода в среде IDE.
С этой проблемой я не могу:
Создавайте приложения Java в целом, потому что, если возникнет эта проблема, которая, на мой взгляд, кажется невозможным решением для моего компьютера, как я буду продолжать создавать системы с этой специальной ошибкой распознавания символов?
Скомпилируйте исходный код на моем компьютере, так как компилятор не распознает специальные символы, такие как ç, á, ã, â, í и другие, и вместо их отображения в выводе появляются квадраты, как вы видели на предыдущем изображении.
Была ли это какая-то конфигурация, которая осталась позади, или это решение, которое я не могу разработать для решения этой проблемы? И если да, то что было бы лучшим объяснением решения этой проблемы? Нужно ли обращаться к техническому специалисту для получения дополнительной информации?
Ваше решение кажется очень интересным, на самом деле я хотел найти решение для решения этой ошибки, и возможность настройки набора символов кажется очень возможным объяснением этой проблемы. Я набрал команду chcp в cmd, и появилась активная кодовая страница: 850. Я не уверен, что это значит, но не могли бы вы дать более четкий ответ в соответствии с тем, что вы сказали? Возможно, ваше более подробное объяснение того, что вы сказали ранее, может помочь разрешить это дело.
Я не очень хорошо знаком с кодировками или с netbeans, поэтому я не так уж сильно помогу. 850 (en.wikipedia.org/wiki/Code_page_850) кажется, что он содержит наиболее типичные специальные символы, так что это не должно быть проблемой. Моим следующим шагом при отладке этой проблемы было бы добавить точку останова и посмотреть, правильно ли выглядит текст внутри переменной String name. Это помогло бы определить, находится ли проблема внутри объекта Scanner или объекта System.
На самом деле, я также нашел это, это может помочь и вам: stackoverflow.com/questions/23709515/…




Я благодарен, что @Tigris помог мне с этой проблемой, и на самом деле, когда я пошел проверить, я устроил бурю в стакане воды. Решение @Tigris в комментариях дало мне идею, которая возникла сразу же, когда я проанализировал ошибку, которую я дал, с ответом, который он мне изначально дал.
Проблема была проста, в основном это была ошибка кодировки символов в терминале IDE, которая была решена с помощью строки, которую я набрал в CMD:
chcp 1252
Это решение связано со ссылкой в конце комментариев, и в ней вы замечаете, что объяснение поста указывает на то, что проблему можно решить с помощью простой строки кода, которая устанавливает системное свойство.
Но после решения этой проблемы и анализа ссылки, которой @Tigris поделился здесь в комментариях, я подумал: если бы моя проблема не была решена и по-прежнему настаивала на отображении специальных символов нечитаемым образом, тогда мне пришлось бы вставить отвеченную строку размещения кода во всех моих проектах?
Вот почему всегда полезно проверить строку символов устройства сразу после того, как оно поступило с завода или даже после ремонта, потому что в зависимости от случая, когда эта проблема с отображением специальных символов может изменить базу данных, с которой работает пользователь, в случае разработчику или даже построить API или веб-сервис для клиента, не обращая внимания на эти детали текстового стресса, которые могут вызвать неудобства и головную боль при завершении проекта в любой IDE, установленной на компьютере.
И Scanner, и System.out можно модифицировать для работы с разными кодировками. Это не полный ответ, но может указать вам правильное направление? Команду chcp можно использовать для определения кодировки, используемой консолью.