ajax中文乱码问题

ajax中文乱码问题

2010-01-01 18:27:17| 分类: JQUERY | 标签: |举报 |字号 订阅

项目中用到了Jquery,在本地windows上测试中文传递没有问题,但部署到AIX上测试的时候变成了乱码了,用env看了下AIX的环境变量,原来系统默认设置是英文,怪不得中文过去就乱掉了,这个问题用是encodeURI()来解决。具体如下:
1、在js代码中的中文参数用 两次encodeURI编码,下面的例子是用jquery 执行ajax操作的代码片段:
$.ajax({
type: "POST",
url: "${base}/microblog/publishComment.do",
data: parameters,
dataType: "json",
success: function()
{alert(“success!”);}
});
其中的 parameters为: var parameters = "content="+encodeURI(encodeURI($.trim($("#content").val())));
其中的
$("#content").val() 为中文内容。
2、在后台的action中接受到content参数后通过
URLDecoder 解码处理:
blog.setCommentContent(URLDecoder.decode(
content,"UTF-8"));
然后保存到数据库即可。

为什么要进行两次
encodeURI编码 呢?
是因为 Java 中的 request.getParameter(String) 方法会进行一次 URI 的解码过程,调用时内置的解码过程会导致乱码出现。而 URI 编码两次后, request.getParameter(String) 函数得到的是原信息 URI 编码一次的内容。接着用 java.net.URLDecoder.decode(String str,String codename) 方法,将已经编码的 URI 转换成原文。
原文链接:http://hi.baidu.com/zhuguoneng/blog/item/96ca9c1f3d67a966f724e465.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值