java虚拟机运行时乱码问题

时间:2023-03-09 23:33:46
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");