比如:
new String (str.getBytes("ISO-8859-1"), "utf-8");为什么用ISO-8859-1编码得到的字节数组,再用utf-8解码才会得到正确的结果.
如果解释的太多不好打字介绍个文章给我看看也行.
new String (str.getBytes("ISO-8859-1"), "utf-8");为什么用ISO-8859-1编码得到的字节数组,再用utf-8解码才会得到正确的结果.
如果解释的太多不好打字介绍个文章给我看看也行.
解决方案 »
- 严重: Servlet.service() for servlet jsp threw exception org.springframework.beans.
- The 'year' argument must be in range 1900 to 9999.
- glassfish和myeclipse集成,运行程序时出现了这样的错误怎么解决
- hibernate异常
- 对于主机多IP,怎么设定IP去链接服务器
- 反射的问题。。。。请大家帮忙
- 利用JAVAMAIL收邮件时怎样才能只收标题,发信人等?
- 大家开发J2EE用什么开发工具?
- norwaywoods近来帮我看一下这个错误是什么, 谢谢
- 请教各位大虾:如何用JSP访问SQLSERVER中的某个表的BLOB字段
- hibernate Criteria查询问题。
- 关于hibernate中的query.Iterator的疑惑
我来具体解释一下这个语句username=new String(username.getBytes("ISO8859_1"),"GBK");
网页本身是gb2312(也就是gbk)对数据进行解码的,那么你要将这个数据转换成ISO8859_1解码
的数据,一定要先将这个数据编码成gbk,然后通过getBytes()方法将其解码成ISO8859_1编码方式,那么最后得到的数据才是以ISO8859_1进行编码的数据
大概意思应该是源信息是utf-8编码的.
但传输或者读取或其他什么环节却用ISO-8859-1解码.
于是得到乱码字符串.
然后这句解决乱码的语句先是str.getBytes("ISO-8859-1") 用ISO-8859-1编码,还原信息.
再用new String (****, "utf-8"); 用utf-8这个符合源信息的字符集重新编码得到正确的结果.我不确定我的理解是不是正确,但我按照自己的理解实验了一下.得到的确实是我想要的结果.