比如汉字 "路" ,先使用utf8编码后,得到结果是%e8%b7%af
然后将他的utf8编码(即"%e8%b7%af")进行gb2312解码后变成"璺?"
再对"璺?"进行gb2312编码后变成了"%e8%b7%3f" 已经不是原来的utf8编码,还同时发现不少这样的汉字.
比如"号","司".
请教这种情况为什么发生?又如何能保证不发生?
然后将他的utf8编码(即"%e8%b7%af")进行gb2312解码后变成"璺?"
再对"璺?"进行gb2312编码后变成了"%e8%b7%3f" 已经不是原来的utf8编码,还同时发现不少这样的汉字.
比如"号","司".
请教这种情况为什么发生?又如何能保证不发生?
避免这种问题的方法是用编码的方式解码。
各种编码之间不是百分百兼容的
同一组二进制数据,用UTF8解码可以得到正常的文字,用GB2312就不一定行。不能正常解码的那一部分数据就损失掉了,你再编码回去得到的二进制数据当然也就不同了
所以才有了这个需求.而现在看来好像就是有部分中文转换不过去了
用httpwatch 监视,就发现在我所需要的那次post里面 所提交的数据就是 将内容进行utf8编码后再用gb2312解码的内容.如果单纯的提交过去utf8编码或者gb2312编码的均绝对不成功