Php 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发送请求。在我尝试西里尔文之前,一切都很完美

我输入的内容:Пааааааааа

什么提醒我javascript:Паааааа

什么回应了我$_POST['question']:%u041F%u0438%u0442%u0430%u043D%u043D%u044F

以下是我的AJAX请求:

$.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);
            }
        }
});
更干净更容易