关于传递参数长度为奇数时最后一个字符乱码的问题

网络整理 - 07-27
最近完成一个jsp开发的项目,却被中文处理的乱码问题搅得好烦,尤其是由.net转身过来的朋友,更是深有体会。而这个问题更是中文由于ie版本的不同,所引起的特殊的奇怪问题。

一、概况:ie7正常,ie6参数就会出现中文接受信息错误,表现为长度是奇数时最后一个字符出现乱码。

二、具体表现:

1、全是汉字时,无论奇数还是偶数,都无乱码。

2、如果是英文中文混合,并且英文字符数是奇数时,就会出现最后有一个“?”号。

3、如果是英文中文混合,并且英文字符数是偶数时,无乱码。

三、原因:ie7支持UTF8编码,但是ie6支持不好。

四、解决方法:

1、用post发送,这个方法当然不出错了,但是,有时候必须用get传递参数的方法,那就没辙了,只能用第二个方法。

2、习惯把中文字符串显示长度设置为偶数。

现在的处理逻辑是:在业务方法里进行判断,如果输入的字符个数为奇数,则给其拼接上一个全角的空格,如果是半角的空格,也还是会有乱码问题。

我暂时试了这个办法,居然可以解决问题。