Php AJAX将西里尔文转换为某种编码
我有个问题。提交表单后,我使用AJAX发送请求。在我尝试西里尔文之前,一切都很完美 我输入的内容:Пааааааааа 什么提醒我javascript:Паааааа 什么回应了我$_POST['question']:%u041F%u0438%u0442%u0430%u043D%u043D%u044F 以下是我的AJAX请求:Php AJAX将西里尔文转换为某种编码,php,ajax,encoding,Php,Ajax,Encoding,我有个问题。提交表单后,我使用AJAX发送请求。在我尝试西里尔文之前,一切都很完美 我输入的内容:Пааааааааа 什么提醒我javascript:Паааааа 什么回应了我$_POST['question']:%u041F%u0438%u0442%u0430%u043D%u043D%u044F 以下是我的AJAX请求: $.ajax({ type: "POST", url: "addQuestion.php", data: "u_id="
$.ajax({
type: "POST",
url: "addQuestion.php",
data: "u_id=" + $("#u_id").val() + "&u_a_name=" + $("#u_a_name").val() + "&question="+escape($("#question_input").val()),
success: function(data) {
if (data == "Asked") {
alert("Asked");
window.location.reload();
} else {
alert(data);
}
}
});
所以我认为这是AJAX的问题,但我在互联网上还没有找到答案。
感谢您的关注。Javascript的转义在处理非ASCII字符时效果不太好,为了处理任何unicode字符,我通常使用encodeURIComponent。在PHP中,可以使用urldecode反转相同的编码。因此:
Javascript:encodeURIComponentПаааааааа返回%D0%B8%D1%82%D0%B0%D0%BD%D1%8F
PHP:urldecode%D0%BF%D0%B8%D1%82%D0%B0%D0%BD%D0%BD%D1%8F;返回
Javascript的转义对于非ASCII字符不太有效,为了处理任何unicode字符,我通常使用encodeURIComponent。在PHP中,可以使用urldecode反转相同的编码。因此:
Javascript:encodeURIComponentПаааааааа返回%D0%B8%D1%82%D0%B0%D0%BD%D1%8F
PHP:urldecode%D0%BF%D0%B8%D1%82%D0%B0%D0%BD%D0%BD%D1%8F;返回
escape使用非标准URL编码,根本不应该使用
总之,使用jQuery,您不会将数据作为字符串,而是作为对象,让jQuery对其进行格式化和编码:
$.ajax({
type: "POST",
url: "addQuestion.php",
data: {
u_id: $("#u_id").val(),
u_a_name: $("#u_a_name").val(),
question: $("#question_input").val()
},
success: function(data) {
if (data == "Asked") {
alert("Asked");
window.location.reload();
} else {
alert(data);
}
}
});
更干净更简单。escape使用非标准URL编码,根本不应该使用
总之,使用jQuery,您不会将数据作为字符串,而是作为对象,让jQuery对其进行格式化和编码:
$.ajax({
type: "POST",
url: "addQuestion.php",
data: {
u_id: $("#u_id").val(),
u_a_name: $("#u_a_name").val(),
question: $("#question_input").val()
},
success: function(data) {
if (data == "Asked") {
alert("Asked");
window.location.reload();
} else {
alert(data);
}
}
});
更干净更容易