执行jar包 java -Dfile.encoding=GB2312 -jar xxx.jar //乱码问题java -Dfile.encoding=utf-8 -jar xxx.jar -Duser.timezone=GMT+08 //时区问题,GMT默认0时区,北京GMT+8,即Asia/Shanghai ,...混入,捂脸/home/weblogic/lbz/ly
java -Dfile.encoding=GB2312 -jar xxx.jar //乱码问题 java -Dfile.encoding=utf-8 -jar xxx.jar -Duser.timezone=GMT+08 //时区问题,GMT默认0时区,北京GMT+8,即Asia/Shanghai ,...混入,捂脸 /home/weblogic/lbz/ly/java -Dfile.encoding=utf-8 -jar xxx.jar 乱码可能原因: 可能一:Linux系统没有安装中文语言包,造成乱码; 可能二:一直使用SSH Secure Shell Client,该软件是免费的SSH远程登录软件。缺点是使用本地编码, 比如windows是GBK,那么登录就是通过GBK连接,这样如果服务器编码是UTF-8,会产生中文乱码 可能三:这是SSH Secure Shell Client多年未解决的短板,要求客户端和服务器端都要‘UTF-8’编码,Windows中文版的编码是非UTF-8。 zh_CN.UTF-8是UTF编码的中文语言环境。 Windows使用的是GB2312编码,大多数linux系统支持的是UTF-8编码,而远程登陆时使用的是本地编码,所以会出现乱码的问题;现有几种解决方案: 方案一:修改linux服务器的环境变量 方案二:或使用其他远程登陆软件,并修改配置,将字符编码设置为UTF-8。 可能四:你是用的ssh到linux去执行编译的吧,这个ssh客户端也是有编码指定的,应该是你的这个编码和系统不一致导致的。如果你在编译的时候不指定编码的话,生成的文件名应该有问题吧。 SSH登录及SFTP文件图形界面传输,推荐使用xshell、SecureCRT.EXE、putty.exe、SSH Secure Shell Client等 (按使用人次顺序排列)FileZilla32_v3.29.0-rc1.exe(文件图形页面传输工具) 解决办法:修改代码(一切问题都可通过修改代码完成) //获取当前系统环境编码格式的属性属性(shell输出乱码 和 文件名乱码 与这个属性有关) static String charsetName = System.getProperty("sun.jnu.encoding");//文件名是否乱码 static String encoding = System.getProperty("file.encoding"); //文件内容是否乱码 str = new String(str.getBytes(), charsetName); str = new String(str.getBytes(), encoding); str = new String(str.getBytes("utf-8"), charsetName);