При вызове java-программы из командной строки с аргументами в качестве русских символов эти аргументы не распознаются программой. Что можно сделать, чтобы этого избежать?
Код программы:
public class Test {
public static void main(String[] args) {
System.out.println(args[0]);
System.out.println("Тест 2");
}
}
Код запуска (bat файл):
chcp 65001
java -Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8 -jar "Best program.jar" "Привет мир2"
В итоге вывод:
?????? ???2
Тест 2
UPD: решение проблемы не нашёл, в итоге запускаю программу на сервере(Linux) через php-скрипт, так программа нормально работает с аргументами:
exec('java -jar "Best program.jar" "Привет мир2"');
У вас, скорее всего, .bat файл сохранен в кодировке cp1251, перекодируйте его в UTF-8, всё должно заработать.
Манипуляции с кодировкой консоли и JVM не нужны. Просто
> javac -encoding utf-8 Test.java
> java Test "Привет мир"
Естественно, кодировка Test.java должна соответствовать значению ключа encoding.
Продвижение своими сайтами как стратегия роста и независимости