Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Netbeans кодировка в консоле вывода / 11 сообщений из 11, страница 1 из 1
14.09.2018, 22:02
    #39702859
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Netbeans кодировка в консоле вывода
Поставил NB 8.2 на win10 и русские символы превратились в квадраты.
на одной машине всё нормально... а вот на другой...
как бы от win не зависит...
...
Рейтинг: 0 / 0
14.09.2018, 22:03
    #39702860
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Netbeans кодировка в консоле вывода
правда на одной jdk 10, на другой 1.8(где нормально)
...
Рейтинг: 0 / 0
15.09.2018, 11:00
    #39702903
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Netbeans кодировка в консоле вывода
Для Open/Oracle JDK старше восьмой версии добавлена логика определения кодировки консоли в винде.
Распознаются только OEM и ANSI варианты. Для русского это Cp866 и Cp1251, соответственно.
KOI8-R (Cp20866) и UTF-8 (Cp65001) - идут лесом.
...
Рейтинг: 0 / 0
15.09.2018, 11:02
    #39702904
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Netbeans кодировка в консоле вывода
вывожу
Код: java
1.
System.out.println(Charset.defaultCharset().name());


получаю
windows-1251
если в свойствах проекта сменит utf-8 на winndows 1251
то в коде все русские буквы сменятся на крокозяблы, а вывод будет правильным

получается надо сменить кодировку в консоли?
...
Рейтинг: 0 / 0
15.09.2018, 11:03
    #39702905
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Netbeans кодировка в консоле вывода
Basil A. SidorovДля Open/Oracle JDK старше восьмой версии добавлена логика определения кодировки консоли в винде.
Распознаются только OEM и ANSI варианты. Для русского это Cp866 и Cp1251, соответственно.
KOI8-R (Cp20866) и UTF-8 (Cp65001) - идут лесом.что делать?
...
Рейтинг: 0 / 0
15.09.2018, 11:13
    #39702910
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Netbeans кодировка в консоле вывода
Кодировка файлов проекта может быть любой.
Главное - корректно указать эту кодировку системе сборки (javac в минимальном варианте).
Если нет разумных причин, то кодировка файлов проекта должна быть UTF-8.

Виндовая консоль, несмотря на "типа юникодность", имеет всякие "забавные" глюки с кодировками и, по умолчанию, использует OEM-кодировку.

Если вам достаточно только Oracle/OpenJDK, то в версии 8 (раньше - не помню) появились два свойства:
Код: plaintext
1.
sun.stderr.encoding
sun.stdout.encoding
Их можно читать и использовать для выбора кодировки при выводе в соответствующий поток.

Ньюансы:
0. Oracle-specific. IBM (Open)J9, например, использует другие свойства и корректнее обрабатывает кодировки консоли "искаропки".
1. Это косвенная информация.
Если переназначить какой-то из потоков вывода файл или в /dev/nul - свойство исчезнет, а кодировка консоли - останется.
...
Рейтинг: 0 / 0
15.09.2018, 11:18
    #39702911
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Netbeans кодировка в консоле вывода
вадячто делать?Делать можно разное.
В скрипте можно установить произвольную кодировку.
Обычно, ANSI-кодировка даёт меньше глюков с выводом сообщений стороннего софта. Например, сообщения Oracle СУБД или системные сообщения самой винды.
...
Рейтинг: 0 / 0
15.09.2018, 18:23
    #39702983
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Netbeans кодировка в консоле вывода
как оказывается есть два варианта решения
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
При запуске приложения попробуйте использовать следующий аргумент командной строки:

-Dfile.encoding=utf-8

Это изменяет кодировку по умолчанию JVM для операций ввода-вывода.

Вы также можете попробовать:

System.setOut(new PrintStream(System.out, true, "utf-8"));


http://programmerz.ru/questions/25545/java-how-to-detect-and-change-encoding-of-system-console-question.html
в конце
...
Рейтинг: 0 / 0
16.09.2018, 18:45
    #39703136
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Netbeans кодировка в консоле вывода
вадя,

В принципе Вы можете получать квадратики для русского просто потому, что для Output окна выбран не поддерживающий язык фонт.
Попробуйте на Output окне RightClick -> Settings и посмотрите какой фонт
...
Рейтинг: 0 / 0
16.09.2018, 19:01
    #39703142
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Netbeans кодировка в консоле вывода
Valery ShiskinВ принципе Вы можете получать квадратики для русского просто потому, что для Output окна выбран не поддерживающий язык фонт.
Попробуйте на Output окне RightClick -> Settings и посмотрите какой фонттам win 1251 как и на другой машине с win10....
...
Рейтинг: 0 / 0
16.09.2018, 20:33
    #39703183
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Netbeans кодировка в консоле вывода
вадя,

Это понятно, но в окне настроек можно выбрать фонт, например, если Вы выберете Microsoft Tai Le, то русский текст станет набором квадратиков
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Netbeans кодировка в консоле вывода / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]