比如汉字 "路" ,先使用utf8编码后,得到结果是%e8%b7%af
然后将他的utf8编码(即"%e8%b7%af")进行gb2312解码后变成"璺?"
再对"璺?"进行gb2312编码后变成了"%e8%b7%3f" 已经不是原来的utf8编码,还同时发现不少这样的汉字.
比如"号","司".
请教这种情况为什么发生?又如何能保证不发生?

解决方案 »

  1.   

    ……UTF8编码只能当作UTF8解码,又不是用gb2312编码的
    避免这种问题的方法是用编码的方式解码。
      

  2.   

    utf8编码后,结果是%e8%b7%af,最好再将%e8%b7%af进行UTF8解码,否则乱码.
      

  3.   

    3L正解
    各种编码之间不是百分百兼容的
    同一组二进制数据,用UTF8解码可以得到正常的文字,用GB2312就不一定行。不能正常解码的那一部分数据就损失掉了,你再编码回去得到的二进制数据当然也就不同了
      

  4.   

    这个是用来做一个网站的 相当于外挂程序,人家那个网站就是把内容先用utf8编码之后用gb2312解码后传递过去才正常.
    所以才有了这个需求.而现在看来好像就是有部分中文转换不过去了
      

  5.   

    废话...把英语直接音译过来谁能看得懂...“人家那个网站就是把内容先用utf8编码之后用gb2312解码后传递过去才正常”绝对是你理解错误...
      

  6.   


    用httpwatch 监视,就发现在我所需要的那次post里面 所提交的数据就是 将内容进行utf8编码后再用gb2312解码的内容.如果单纯的提交过去utf8编码或者gb2312编码的均绝对不成功