jquery的ajax无法传递汉字参数

我用ajax异步传输,当传输的内容是数字时没有问题,但当传输的是汉字时,却出现错误!不知道该怎么样解决!

以下是我的js:
<script type="text/javascript">
function checkNameExist(obj,obj2,async) {
if (typeof(async) == "undefined") async = true;
var m = $.trim(obj.val());
var n = $.trim(obj2.val());
m =encodeURI(m);
n =encodeURI(n);
var b = false;
$.ajax({
type: "GET",
async: async,
url: "/ajax/member/isNameExist/" + m + "/"+ n + "/" + Math.random(),
dataType: "script",
success: function(data) {
if(data == 1) {
$("#"+obj.attr("name")).text('匹配成功!').css("color", "#000000");
b = true;
} else {
$("#"+obj.attr("name")).text('对不起,帐户和姓名不匹配!').css("color", "#ff0000");
$("input[name='name']").focus();
b = false;
}

}
});
return b ;
}

</script>

下面是member文件的函数(在MVC模式下,仅供参考)
function isNameExist($name = '',$username = '') {
$this->load->database();
$name=urldecode($name);
$username=urldecode($username);

if (trim($username) != '') {
$query = $this->db->get_where('members', array('username' => $username,'chinese_name' => $name));
echo $query->num_rows(); //如果成立,则输出1,
} else {
return 'error';
}
}
原来是url地址里面有非法字符,
http://hx0000/ajax/member/isNumberExist/%E4%BD%A0%E5%A5%BD/

看来MVC模式下地址里面不能有%符号!
能不能依我的例子写一个用 POST 传参的例子?
最新回答
人不喂鸡天猪地灭

2024-08-02 03:16:29

编码的问题 在本页面先把汉字转换成utf-8编码再传输过去 同时接收页面也要是urf-8的编码.也就是说接收页面也要把汉字编码成utf-8再返回去

每个页面的编码要一样, 是gb2312就都要是gb2312. 是utf-8就要都是utf-8。 不过我还是强烈推荐你用utf-8 这个的兼容性最好
霸气御姐范

2024-08-02 03:15:19

ajax默认的汉字编码是utf-8....你自己改下接收页面的编码格式就可以了。
与君醉笑三千场

2024-08-02 00:07:13

接收的时候把编码方式转换一下不就OK