java虚拟机运行时乱码问题

  • 问题:
  • Android端通过socket发送文本到windows,windows调用系统剪切板进行粘贴的操作,java服务端在eclipse下直接运行粘贴的文本无乱码,打包jar后粘贴的文本乱码。

  • 解决方法1:
  • java的reader类的子类们在构造时如果没有指定Charset,将采用系统默认字符集。windows一般是gbk,ubuntu上是utf-8。
  • java运行时是可以指定虚拟机默认字符集的:java -Dfile.encoding=utf-8 -jar a.jar解决方法1:

  • 解决方法2:
  • 在服务端通过流获取数据时,设置字符集为utf-8,比如 buffer.toString().getBytes("utf-8");真正开发不用socket,android用httpclient,服务端写个servlet即可;

  • 解决方法3:
  • 在程序启动方法里加上代码 System.setProperty("file.encoding", "utf-8"); System.setProperty("sun.jnu.encoding", "utf-8");

转载于:https://www.cnblogs.com/smartbetter/p/5259262.html

你可能感兴趣的:(java虚拟机运行时乱码问题)