已发布数据的php编码已更改

时间:2015-10-22 09:32:34

标签: php utf-8

我将数据从客户端发布到php,这是我的帖子数据在客户端中的显示方式: enter image description here

我单击添加并将此字符串发布到php,其中ajax调用如何将发布的数据显示在ajax参数中;

//username ="Uğur Akkaynak" so its ok. 

    var params = {
        action: "saveAdObjects",
        username_: username,
    }
    $.ajax({
        url: "../../Controller/ActiveDirectoryController.php5",
        type: "POST",
        async:false,
        dataType: "json",
        data: params,
        success: function (result)...

在php文件中,我检查发布的变量:

var user = $_POST["username"]; //UÄŸur Akkaynak wtf!

所以问题很明显,php中的字符串坏了,我知道我需要在php文件中更改编码并尝试这些:

header('Content-type: text/plain; charset=utf-8'); 
utf8_encode($_POST["username"]);// Uğur Akkaynak 
mb_convert_encoding ($_POST["username"],'utf-8'); // UÄŸur Akkaynak

我应该怎么办$ _POST [“username”]为'UğurAkkaynak',如发布于客户

2 个答案:

答案 0 :(得分:0)

无需添加标题:

header('Content-type: text/plain; charset=utf-8'); 

要在客户端编码字符串,可以在ajax函数中添加以下内容: contentType:"application/x-javascript; charset:UTF-8"

$.ajax({
        url: "../../Controller/ActiveDirectoryController.php5",
        type: "POST",
        async:false,
        dataType: "json",
        data: params,
        contentType:"application/x-javascript; charset:UTF-8"
        success: function (result)...

同时验证您的HTML-head是否包含:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

答案 1 :(得分:-1)

首先,您需要通过开发者控制台观察您的请求。
查找网络请求并查看参数值。

如果不正确,请尝试添加

contentType: "application/x-www-form-urlencoded;charset=utf-8",

进入你的ajax请求。