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

来源:互联网 发布:越狱怎么清除所有数据 编辑:程序博客网 时间:2024/06/05 04:09


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



阅读全文
0 0
原创粉丝点击