关于 Ajax 使用中中文字符编码问题

前台javascript

function addQuestion(){
    var questionContent = $(”questionContent”).value;
    if (questionContent == null || questionContent == “”) {
        $(”questionTip”).innerHTML = “你提交的问题不能为空,请重新输入!”;
        return;
    }

    var url = “ajax/addQuestion.action?content=” + questionContent;
    url = encodeURI(url);
    url = encodeURI(url);
    new Ajax.Request(url, {
        method: ‘post’,
        onSuccess: function(transport){
            var result = transport.responseText.evalJSON();
            $(”questionTip”).innerHTML = result.tip;
            GetQList(2, 1); //刷新我的问题列表
        },
        onCreate: function(){
            $(”questionTip”).innerHTML = $(”loadingSubQ”).innerHTML;
            $(”askQForm”).disable();
        },
        onFailure: function(){
            $(”questionTip”).innerHTML = “问题提交失败”;
            $(”askQForm”).enable();
        }
    });
}

使用的是ProtoType1.6,上面的代码很明白,就不多说了。注意encodeURI俩次。

后台获取到content后。

String dContent = java.net.URLDecoder.decode(getContent(),”utf-8″);

即可。

还有一种最简单方式:

将提交内容放在form中,使用ProtoType的Form.serialize(),不存在编码问题,ProtoType已经帮你做好了。

相关推荐