【发布时间】:2015-09-20 10:28:28
【问题描述】:
我在使用俄罗斯符号时遇到了编码问题。首先,我用这段代码确定了控制台输出问题:
String consoleEncoding = System.getProperty("consoleEncoding");
if (consoleEncoding != null) {
try {
System.setOut(new PrintStream(System.out, true, consoleEncoding));
} catch (java.io.UnsupportedEncodingException ex) {
System.err.println("Unsupported encoding set for console: "+consoleEncoding);
}
}
但我有控制台Scanner 输入也可以有俄罗斯符号,但如果会这样
Scanner sc = new Scanner (System.in);
String text = sc.nextline(); //if user input here eg "Привет,Мир"
System.out.println(text); // here I will recieve "???,??"
Scanner sc = new Scanner (System.in, "UTF-8);
或“cp866”对我不起作用(或仅适用于 Windows)我需要这样的通用决定,可以适应和接受任何操作系统控制台(mac OS/win)的输入俄语字符
【问题讨论】:
标签: java encoding console symbols cyrillic