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%”。我据此编辑了这篇文章,你们能看一下吗?你们可能只需要使用,你们能详细说明你们的答案并把它放到问题的上下文中吗?非常感谢。