中文乱码是是个头疼的问题。遇到多次乱码后,有两点总结。
如果是直接利用form表单提交数据到服务器,那么要注意页面的编码pageEncoding,在读取的时候:
假如编码为pageEncoding="GBK",用
new String("提交的中文字符串".getBytes("GBK"),"ISO-8859-1")
假如编码为pageEncoding="gb2312",用
new String("提交的中文字符串".getBytes("gb2312"),"ISO-8859-1")
假如编码为pageEncoding="UTF-8",用
new String("提交的中文字符串".getBytes("UTF-8"),"ISO-8859-1")或者new String("提交的中文字符串".getBytes(),"ISO-8859-1")
如果利用AJAX异步调用提交数据到服务器为了保证编码的明确性,例如可以在JS里面用
encodeURI("中文字符串".)对提交的数据进行编码,
在服务端用
new String("提交的中文字符串".getBytes("ISO-8859-1"),"UTF-8");