Кодировка в консоли

Leonidius

Developer (Level 2)
Здравствуйте! Столкнулся с проблемой с кодировкой. В консоли на Windows XP весь русский текст отображается некорректно (см. скриншот). В самой игре никаких проблем нет. Подскажите, пожалуйста, как это можно исправить?
 

Attachments

fromgate

Administrator
@Leonidius
XP - это было так давно, что уже не помню поддерживает ли она UTF-8.
Но в этой ситуации явно выбран не тот шрифт, укажите Lucida Console — с ним как правило проблем не бывает.
 

Leonidius

Developer (Level 2)
@Leonidius
XP - это было так давно, что уже не помню поддерживает ли она UTF-8.
Но в этой ситуации явно выбран не тот шрифт, укажите Lucida Console — с ним как правило проблем не бывает.
Сейчас у меня уже стоит Lucida Console, проблема сохранилась.
 

fromgate

Administrator
Ну значит ситуация такая - java выдаёт текст в одной кодировке (скорее всего в UTF-8), а консоль работает в другой.
Консоль по умолчанию использует 866-ую кодировку.

Вобщем варианты такие:

1 Запускать сервер параметром -Dfile.encoding=cp866, чтобы чтобы Java для файлов использовала именно эту кодировку. При этом могут быть проблемы с файлам, которые содержат русские буквы. Их надо будет переконвертировать.
Code:
java.exe -Dfile.encoding=cp866 -jar nukkit.jar
2 Запускать сервер в кодировке 1251
Code:
chcp 1251
java.exe -Dfile.encoding=cp1251 -jar nukkit.jar
При этом возможно надо будет попробовать разные шрифты для консоли.

3 Установить альтернативную консоль, которая будет поддерживать UTF-8. Я ставил, но ещё во времена Windows 7 - работало нормально.
Кроме того, мне встречалось упоминание, что для Windows XP был патч для консоли, который добавлял поддержку UTF-8, но действительно ли это так не знаю
 

Leonidius

Developer (Level 2)
Ну значит ситуация такая - java выдаёт текст в одной кодировке (скорее всего в UTF-8), а консоль работает в другой.
Консоль по умолчанию использует 866-ую кодировку.

Вобщем варианты такие:

1 Запускать сервер параметром -Dfile.encoding=cp866, чтобы чтобы Java для файлов использовала именно эту кодировку. При этом могут быть проблемы с файлам, которые содержат русские буквы. Их надо будет переконвертировать.
Code:
java.exe -Dfile.encoding=cp866 -jar nukkit.jar
2 Запускать сервер в кодировке 1251
Code:
chcp 1251
java.exe -Dfile.encoding=cp1251 -jar nukkit.jar
При этом возможно надо будет попробовать разные шрифты для консоли.

3 Установить альтернативную консоль, которая будет поддерживать UTF-8. Я ставил, но ещё во времена Windows 7 - работало нормально.
Кроме того, мне встречалось упоминание, что для Windows XP был патч для консоли, который добавлял поддержку UTF-8, но действительно ли это так не знаю
Спасибо, помог вариант с Dfile.encoding=cp866.
 

fromgate

Administrator
Спасибо, помог вариант с Dfile.encoding=cp866.
На всякий случай, если потом где-то будут вылезать глюки (могут прямо в игре вылезать) - проверяй кодировку файлов. Дело в том, что с точки зрения стандарта YAML - должно быть всегда в кодировке UTF-8. Но в баккит, смена кодировки файлов java всё равно влияла на кодировку yaml - приходилось вручную конвертировать. Как это реализовано по части кодировок в наккит я не знаю - мне и UTF-8 комфортно :)
 
Top