当前位置: 代码迷 >> J2SE >> System.in是字节流,它是一种什么编码格式?怎么改变他
  详细解决方案

System.in是字节流,它是一种什么编码格式?怎么改变他

热度:18   发布时间:2016-04-23 19:39:11.0
System.in是字节流,它是一种什么编码格式?如何改变他?

import java.io.IOException;
public class CharsetTest
{
public static void main(String[] args) throws IOException {
byte[] in = new byte[20];
while (true) {
int r = System.in.read(in);
if (r == -1)break;
for (int i = 0; i < r; ++i) {
System.out.printf("%02X ", in[i]);
}
System.out.println();
}
}
}
运行结果:

D:\java>javac CharsetTest.java

D:\java>java CharsetTest
123ABC
31 32 33 41 42 43 0D 0A
计 算 机
BC C6 20 CB E3 20 BB FA 0D 0A
程序设计
B3 CC D0 F2 C9 E8 BC C6 0D 0A
我的电脑
CE D2 B5 C4 B5 E7 C4 D4 0D 0A
^Z

D:\java>set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

D:\java>java CharsetTest
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
123ABC
31 32 33 41 42 43 0D 0A
计算机
BC C6 CB E3 BB FA 0D 0A
程序设计
B3 CC D0 F2 C9 E8 BC C6 0D 0A
我的电脑
CE D2 B5 C4 B5 E7 C4 D4 0D 0A
^Z





------解决思路----------------------
楼主要不试试在Eclipse里面,修改运行配置(Run Configuarations),其中Common选项卡中有Encoding的选项,亲测这个可以影响输入流的编码。

至于windows控制台,好像设计有点问题,在那个模式下没法使用中文。
  相关解决方案