比如:
new String (str.getBytes("ISO-8859-1"), "utf-8");为什么用ISO-8859-1编码得到的字节数组,再用utf-8解码才会得到正确的结果.
如果解释的太多不好打字介绍个文章给我看看也行.

解决方案 »

  1.   

    因为url传送默认编码是容器的编码,tomcat默认是iso-8859-1.所以,request.gerParameter()获得的值必须转码,除非设置tocmat的默认url编码。  这个是涉及到字符编码的问题   一个字符在网页间传递要经过编/解码的问题  
      我来具体解释一下这个语句username=new   String(username.getBytes("ISO8859_1"),"GBK");  
      网页本身是gb2312(也就是gbk)对数据进行解码的,那么你要将这个数据转换成ISO8859_1解码  
      的数据,一定要先将这个数据编码成gbk,然后通过getBytes()方法将其解码成ISO8859_1编码方式,那么最后得到的数据才是以ISO8859_1进行编码的数据 
      

  2.   

    看了一些资料有点明白了.
    大概意思应该是源信息是utf-8编码的.
    但传输或者读取或其他什么环节却用ISO-8859-1解码.
    于是得到乱码字符串.
    然后这句解决乱码的语句先是str.getBytes("ISO-8859-1") 用ISO-8859-1编码,还原信息.
    再用new String (****, "utf-8"); 用utf-8这个符合源信息的字符集重新编码得到正确的结果.我不确定我的理解是不是正确,但我按照自己的理解实验了一下.得到的确实是我想要的结果.