JavaRush/Java блог/Архив info.javarush/Intellij Idea перестал распознавать русские буквы
strEaM
25 уровень

Intellij Idea перестал распознавать русские буквы

Статья из группы Архив info.javarush
участников
Здравствуйте, заметил что в идее русские символы стали отображаться иероглифами. К примеру просто вывожу русские буквы на экран System.out.println("джава раш рулит"); и имею такой вывод "вфывфы" . Подскажите пожалуйста как это исправить .
Комментарии (9)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
blacky
Уровень 23
17 июня 2014, 03:56
Посмотри в какой кодировке создается файл, далее посмотри какую кодировку использует текстовый редактор, далее смотри совпадает ли дефолтная кодировка консоли с кодировкой файла. В идеале всегда используй UTF8. К сожалению, у консоли Win проблемы с отображением кодировки UTF8.
strEaM
Уровень 25
17 июня 2014, 04:47
В идее стоит UTF-8. Если считывать русский текст с файла, в котором кодировка так же utf-8, результат аналогичен. Выше я навел пример в котором вовсе нет файла, просто вывод на экран строки.
blacky
Уровень 23
17 июня 2014, 05:54
То, что в идее стоит для проекта utf8 ни о чем не говорит. Файл мог быть создан в другой кодировке ранее. Или же глюк идеи или системы. А также могли повлиять дефолтные настройки терминала операционки на результат в идее. В идее есть Settings -> Terminal.
«РІС„ывфы».
вывод в консоли очень похож на cp-1251 aka windows-1251. А стандартная кодировка для cmd — это DOS 866. Узнать текущую кодировку можно командой chcp + настройка точечных шрифтов. Проверь ту же программу в консоли. Проверь другую программу в консоли.
strEaM
Уровень 25
17 июня 2014, 16:44
Можно по подробней о «дефолтных настройках терминала», как их посмотреть. Еще в идее, в Settings у меня нету вкладки Terminal. Стоит 12 версия программы.
blacky
Уровень 23
17 июня 2014, 20:19
encoding in intellij idea v12.04
Да, в 12 версии для винды тоже не нашел настройки терминала. Дефолные настройки для терминала, вроде бы, не влияют на вывод в идее.
#1 — выставить кодировку для файлов
#2 — посмотреть исходную кодировку у файлов
#3 — поставить галочки на utf8 (т.к. utf8 без BOM распознается как ascii)
#4 — позволяет менять кодировку файла «на лету»
#5 — должна быть опция для консоли "-Dfile.encoding=UTF-8"
#6 — необходимо либо дописывать русские буквы, либо удалить и создать заново проект, чтобы кодировка применилась
strEaM
Уровень 25
18 июня 2014, 02:28
Спасибо за исчерпывающий ответ!
1, 2, 3, 5 пункты у меня так же стоят, в пункте 4 стоит utf8.
Попробовал создать новый проект, в нем русские буквы распознаются, все работает нормально. Что-то не так с проектом JavaRushHomeWork. Могу ли я как-то это исправить, не удаляя его, там уже куча задачек, может пригодится еще.
blacky
Уровень 23
18 июня 2014, 03:51
Оки, жаль, что саму причину не удалось определить.
А проблема была только с единственным файлом или со всеми в проекте?
Если со всеми, то такой проект лучше сразу удалить, т.к. файлы созданные в одной кодировке, перекодированные в другую и показываемые в третьей очень сложно вернуть к исходному содержанию. Штирлиц с этой задачей неплохо справляется. А для рядовых задач перекодирования хорошо подходят notepad++ или geany. Кстати, иногда бывает, что текст, копируемый в буфер обмена, имеет кодировку отличную от кодировки файла, НО редактор может поддерживать множество кодировок, и тогда… появляется магия.

Я периодически делаю бэкапы проектов. Иногда копирую нужные файлы и папки в проект при помощи обычного файлового менеджера.
blacky
Уровень 23
18 июня 2014, 10:00
ммм… надо себя подправить
файл не имеет кодировок
байты, которые лежат в файле, имеют кодировку.
Поэтому, имеем файл с байтами, которые имеют кодировку
линк на коммент
strEaM
Уровень 25
18 июня 2014, 14:47
О, так дальше задачки будут связанные с кодировкой, интересно…
п.с Скачал новый проект, вставил в него старые задачи, теперь все ок