Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript自动将UTF转换为ISO-8859_Javascript_Encoding_Utf - Fatal编程技术网

Javascript自动将UTF转换为ISO-8859

Javascript自动将UTF转换为ISO-8859,javascript,encoding,utf,Javascript,Encoding,Utf,我有一个非常奇怪的编码问题,这让我发疯 因此,让我们假设: function Test(Name, callback) { $.ajax({ type: "POST", url: "Test.php", data: "Name=" + Name, success: function (msg) { callback(msg); } }); } 以及test.php文件: fu

我有一个非常奇怪的编码问题,这让我发疯

因此,让我们假设:

function Test(Name, callback) {
    $.ajax({
        type: "POST",
        url: "Test.php",
        data: "Name=" + Name,
        success: function (msg) {
            callback(msg);
        }
    });
}
以及test.php文件:

function is_utf8($string) {
    return (mb_detect_encoding($string, 'UTF-8', true) == 'UTF-8');
}

    if (is_utf8($_POST["Name"])){
        echo "Im in UTF";
    }
    else{
        echo "im not in UTF!!";
    }
编辑-阅读此 我在那里发现了一些东西[http://www.w3schools.com/tags/ref_urlencode.asp][http://www.w3schools.com/tags/ref_urlencode.asp]我发现这个问题导致了编码,例如“%21”变成了感叹号。如何阻止这种情况发生?我只想传递%21并在PHP中获取字符串“%21%string”,所以当我将其转换为UTF时,会得到感叹号。

解决方案是使用

encodeURIComponent(Name)

可能重复我不想知道它是什么字符集…这个问题是关于它为什么转换它。我确切地知道输入字符集是什么。jQuery将把数据转换成查询字符串,适合默认的内容类型“application/x-www-form-urlencoded”“-请参阅上的processData。根据同一页,它仍然应该是UTF-8。也许可以尝试设置
processData:false
。另外,该页面上的示例使用了
数据:{name:“John”,location:“Boston”}
您好,谢谢您的回答。我发现这个问题是由Url编码的字符串引起的,比如“%21%”。我据此编辑了这篇文章,你们能看一下吗?你们可能只需要使用,你们能详细说明你们的答案并把它放到问题的上下文中吗?非常感谢。