您的位置:首页 > 运维架构 > Tomcat

项目在Eclipse无乱码,Tomcat单独部署时产生乱码

2017-12-15 15:51 148 查看
JVM的默认编码,如果没有设置的话是根据系统来的,中文系统默认编码一般是GBK,在输出文字字节时如果没有指定编码格式,那输出的就是GBK的字节,需要统一JVM和项目中的编码,否则乱码

public static Logger logger1 = Logger.getLogger(Message.class);

public static String outputByteString(String input) {
StringBuilder sb = new StringBuilder();
sb.append(Util.getByteString(input));
sb.append(Util.getByteString(input,"UTF-8"));
sb.append(Util.getByteString(input,"GBK"));
sb.append(Util.getByteString(input,"ISO-8859-1"));
//		logger1.info(sb.toString());
return sb.toString();
}

private static String getByteString(String input) {
StringBuilder sb = new StringBuilder();
sb.append("Default getBytes");
sb.append("-----------:\n");

for (byte b : input.getBytes()) {
sb.append(b + " ");
}
sb.append("\n");
//		logger1.info(sb.toString());
return sb.toString();
}

private static String getByteString(String input,String charset) {

StringBuilder sb = new StringBuilder();
sb.append("getBytes(");
sb.append(charset);
sb.append(")-----------:\n");
try {
for (byte b : input.getBytes(charset)) {
sb.append(b + " ");
}
sb.append("\n");

} catch (UnsupportedEncodingException e) {
sb.append("ERROR!");
sb.append("\n");
}
//		logger1.info(sb.toString());
return sb.toString();

}


1、在系统的环境变量中添加一个变量,名为:JAVA_TOOL_OPTIONS, 值为:-Dfile.encoding=UTF-8

2、如果是web工程,可以在catalina.bat的最前面加入设置了编码后使用java -help可能会出现乱码,这个时候可以使用-Duser.language=en设置一下语言

在AZURE上创建java应用是添加参数

键JAVA_TOOL_OPTIONS             值       -Dfile.encoding=UTF-8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat jvm 乱码 eclipse
相关文章推荐