ajax乱码的问题

山城忙碌人 2010-03-16 11:18:40
出现乱码的问题很怪.
就是在SERVLET接收到的中文,如果字符串长度为偶数时,不会出现乱码.当字符串长度不为偶数时就出现乱码.请问这个问题怎么解决.
...全文
67 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvwei1114 2010-03-16
  • 打赏
  • 举报
回复
虽然汉字和字母还有数字所占有的字节字不一样
但是跟在服务器中接受到文字没有什么影响吧!
提交方式用post
文字很多就用form表单框起来提交!
记得要写字符的过滤器!
kc8886 2010-03-16
  • 打赏
  • 举报
回复
这种问题俺遇到过两次,奇书乱码偶数不乱码。
第一次是因为(编码)过滤器太多 也就是多次设置编码方式
第二次也是因为(编码)过滤器太多
所以建议楼主检查检查是否你的编码方式,是否进行了多次解码
SIOSXIAOQIANG 2010-03-16
  • 打赏
  • 举报
回复
如果没记错,这不应该是奇偶问题,
应该是如下情况下发生乱码问题,
1.汉字中间有数字,英文字符;
2.汉字前有数字英文字符;
3.汉字结尾有数字英文字符;
以上三种情况下,不管是1个字符还是2个字符,都会出现乱码问题吧。
如果是这种情况,就应该是页面传参时出现的问题,
需要用到:

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

public class ChineseToUTF8 {

public static String Encode(String chinese) throws UnsupportedEncodingException
{
String newStr = URLEncoder.encode( chinese, "utf8");
return newStr;
}
public static String Decode(String utf8) throws UnsupportedEncodingException
{
String newStr = URLDecoder.decode( utf8, "utf8");
return newStr;
}
public static void main(String[] args) throws UnsupportedEncodingException {
System.out.println(Encode("分辨率"));
System.out.println(Decode(Encode("分辨率")));
}
}


输出结果:

%E5%88%86%E8%BE%A8%E7%8E%87
分辨率


也不知道能不能帮到你。
孟子E章 2010-03-16
  • 打赏
  • 举报
回复
对提交的数据进行编码 encodeURIComponent("xx")
zhouxiaobo123 2010-03-16
  • 打赏
  • 举报
回复
还真有点奇怪,乱码和奇偶联系起来了
kc8886 2010-03-16
  • 打赏
  • 举报
回复
理论上和接受文字数量没有关系,然而 现实和理想往往是存在差距的,比如如下一段代码

String str = "哥只是个传说";
String str1 = new String(str.getBytes("utf-8"),"gbk");
System.out.println("-------------" + str1);
String str2 = new String(str1.getBytes("GBK"),"utf-8");
System.out.println("-------------" + str2);

String str = "哥只是个传说"; 偶数个汉字
执行结果如下
-------------鍝ュ彧鏄釜浼犺
-------------哥只是个传说
String str = "哥不只是个传说"; 奇数个汉字
执行结果如下
-------------鍝ヤ笉鍙槸涓紶璇?
-------------哥不只是个传??

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧