由于最近两天在玩下socket通话,突然在控制台输入的中文都是乱码了。
Scanner input = new Scanner(System.in);
String str=input.next();
这样接收控制台输入的中文都是乱码,这个问题好像以前听别人问过,只是没有深入去了解。最后还是被自己碰到了
搞了半天才找出问题。由于中文操作系统的默认的编码是GBK,而JVM是默认系统的编码的,然后如果在MyEclipse上面把编码改为UTF-8的话有可能会造成乱码(一般情况下是不会的,不知道为什么我那个偏偏不是一般情况)。
下面分享下解决方案吧。
然后选择你的类,我的是socket的客户端,所以是Client这个类。
在右边添加-Dfile.encoding=GBK到VM arguments这里
下一步把默认的编码修改成GBK
然后直接保存,运行,就可以了。
Scanner input = new Scanner(System.in);
String str=input.next();
这样接收控制台输入的中文都是乱码,这个问题好像以前听别人问过,只是没有深入去了解。最后还是被自己碰到了
搞了半天才找出问题。由于中文操作系统的默认的编码是GBK,而JVM是默认系统的编码的,然后如果在MyEclipse上面把编码改为UTF-8的话有可能会造成乱码(一般情况下是不会的,不知道为什么我那个偏偏不是一般情况)。
下面分享下解决方案吧。
然后选择你的类,我的是socket的客户端,所以是Client这个类。
在右边添加-Dfile.encoding=GBK到VM arguments这里
下一步把默认的编码修改成GBK
然后直接保存,运行,就可以了。
希望对大家有用处吧。
本文转自 风雨萧条 博客,原文链接: http://blog.51cto.com/1095221645/1419161 如需转载请自行联系原作者