web项目中如果统一转码工作(tomcat,spring等)没有做好的话,难免会出现乱码。
网上的各种解决方案,也未必是“对症下药”
所以写了一个小工具来枚举的方式转码,看结果后用对得那个就可以了,简单粗暴!
代码分享出来,有用到的朋友可以省下不少时间
当然如果大家有更好的方法,欢迎讨论
import java.io.UnsupportedEncodingException;
public class CharTools {
/** 枚举的方式将老字符进行转码
* @param oldStr
* cxy 2014-06-18
*/
public static void codeTest(String oldStr)
{
String[] oldCode={"GBK","UTF-8","GB2312","ISO-8859-1","BIG5"};
String[] newCode={"GBK","UTF-8","GB2312","ISO-8859-1","BIG5"};
System.out.println("=====================");
System.out.println("原字符:"+oldStr);
try {
for(String one : oldCode)
{
for(String one1 : newCode)
{
System.out.println(one+" to "+one1+"------"+new String(oldStr.getBytes(one),one1));
}
//下面是针对前台encodeURIComponent的数据
System.out.println("URLDecoder("+one+")"+ java.net.URLDecoder.decode(oldStr, one));
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println("=====================");
}
public static void main(String[] args) {
CharTools.codeTest("中文");
}
}
有2个数组,列举了常用的编码,有需要可以自己添加。