由于最近两天在玩下socket通话,突然在控制台输入的中文都是乱码了。
Scanner input = new Scanner(System.in);

String str=input.next();

这样接收控制台输入的中文都是乱码,这个问题好像以前听别人问过,只是没有深入去了解。最后还是被自己碰到了
搞了半天才找出问题。由于中文操作系统的默认的编码是GBK,而JVM是默认系统的编码的,然后如果在MyEclipse上面把编码改为UTF-8的话有可能会造成乱码(一般情况下是不会的,不知道为什么我那个偏偏不是一般情况)。
下面分享下解决方案吧。




然后选择你的类,我的是socket的客户端,所以是Client这个类。
在右边添加-Dfile.encoding=GBK到VM arguments这里



下一步把默认的编码修改成GBK


然后直接保存,运行,就可以了。
希望对大家有用处吧。