在之前的项目凡是编码都设置为UTF-8,但是这个项目时我接手的二手项目,不知道项目的编码具体是怎么用的。所以呢,一测试就乱码,乱码我先想到的是这个中文字符采用的是什么编码呢?在网上找了一段这样的逻辑(也不知道对不对,因为我最终的解决方法没有用上)把代码贴出给大家看看吧!
public static String getEncoding(String str) {
String encode = "ISO-8859-1";
try {
if (str.equals(new String(str.getBytes(encode), encode))) {
String s = encode;
return s;
}
} catch (Exception exception) {
}
encode = "GB2312";
try {
if (str.equals(new String(str.getBytes(encode), encode))) {
String s1 = encode;
return s1;
}
} catch (Exception exception1) {
}
encode = "GBK";
try {
if (str.equals(new String(str.getBytes(encode), encode))) {
String s2 = encode;
return s2;
}
} catch (Exception exception2) {
}
encode = "UTF-8";
try {
if (str.equals(new String(str.getBytes(encode), encode))) {
String s3 = encode;
return s3;
}
} catch (Exception exception3) {
}
return "";
}
通过这个代码,我测的是我的中文采用的GB2312,然后我通过三四种转码方式都没有实现,最后我想到了浏览器的编码。我用的是火狐,我把火狐浏览器的编码设置为自动检测,然后乱码解决了!怎么将火狐的编码设置为自动检测呢?
1、先看浏览器最上面的菜单栏,如图:
如果你没有出现这些菜单栏的话,按alt键就会出现。然后 查看----字符编码------自动检测---------自动选择。如图:
这样火狐会根据你的编码自动选择。乱码解决!!
原文:http://blog.csdn.net/zl544434558/article/details/19401821