论坛首页 Java企业应用论坛

关于web乱码问题

浏览 3536 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (1)
作者 正文
   发表时间:2011-12-23  
服务器端用的是UTF-8编码,页面的QueryString用的是GBK编码,导致了页面的QueryString用GBK编码进行URLEncoder,而服务器用UTF-8进行URLDecoder,导致乱码问题。 如果我采用 new String(queryString.getBytes("UTF-8"),"GBK") ,问题还会存在,因为UTF-8每个汉字占用3字节,GBK每个汉字占用2字节。 最后导致转换的文字不符合。比如如果是两个汉字,调用getBytes("UTF-8")转换成UTF-8,会是6个字节,重组GBK字符串的时候会变成3个汉字。





firefox QueryString 默认采用GBK编码
web服务器采用UTF-8来解码
我那个main里的几行代码,是在进行模拟
  • 大小: 55.9 KB
   发表时间:2011-12-23  
等待  我也遇到了一个类似的问题   我的是JAVA调C++程序,java用的UTF-8,C++用的GBK 也出乱码了。
0 请登录后投票
   发表时间:2011-12-26  
先转成ISO8859-1 再转成gbk  多转一次   看上面的情况得加个中间层
0 请登录后投票
   发表时间:2011-12-26  
好吧,没看明白,不过所谓的乱码其实就是编码格式导致的,统一一下编码格式就行。
像二楼所说的这种情况的话,应该是指定一下Java默认的编码格式就行了,首先是代码存储的格式,其次是虚拟机使用的默认格式,如果都改成GBK,应该就不会再有问题了。
0 请登录后投票
   发表时间:2011-12-26  
wpf5788 写道
先转成ISO8859-1 再转成gbk  多转一次   看上面的情况得加个中间层


先转成中间码,再转需要的编码方式
0 请登录后投票
   发表时间:2011-12-30  
乱码和这几个地方有关:
1. 源文件的编码
2. 控制台的编码

    public static String utf8_gbk(String value){
        String gbk = "";
       
        try {
            gbk = new String(value.getBytes(), "gbk");
        } catch (UnsupportedEncodingException e){
            // Ignore.
        }
       
        return gbk;
    }
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics