ajax如何傳中文參數亂碼解決辦法 由於某種原因ajax默認就是uft-8的編碼,那麼我們使用一gbk就容易出現亂碼的問題,下面我們就來告訴你php ajax亂碼的解決方法吧。
ajax如何傳中文參數亂碼解決辦法
由於某種原因ajax默認就是uft-8的編碼,那麼我們使用一gbk就容易出現亂碼的問題,下面我們就來告訴你php教程 ajax亂碼的解決方法吧。
傳遞中文參數,然後修改數據庫教程的。
<script>
var url="admin/ajaxmodify.php?"+key+"=";
url+=encodeuricomponent(encodeuricomponent(value));
xmlhttp.open("get",url,true);
xmlhttp.send(null);
</script>
參數是中文encodeuricomponent這個方法必須調用兩次
*/function utf8rawurldecode ($source) {
$decodedstr = "";
$pos = 0;
$len = strlen ($source);
while ($pos < $len) {
$charat = substr ($source, $pos, 1);
if ($charat == '%') {
$pos++;
$charat = substr ($source, $pos, 1);
if ($charat == 'u') {
// we got a unicode character
$pos++;
$unicodehexval = substr ($source, $pos, 4);
$unicode = hexdec ($unicodehexval);
$entity = "&#". $unicode . ';';
$decodedstr .= utf8_encode ($entity);
$pos += 4;
}
else {
// we have an escaped ascii character
$hexval = substr ($source, $pos, 2);
$decodedstr .= chr (hexdec ($hexval));
$pos += 2;
}
} else {
$decodedstr .= $charat;
$pos++;
}
}
return $decodedstr;
}
/*
注:js中,在使用字符轉碼的時候,推薦使用 encodeuricomponent() 或者 encodeuri(),而非escape()。原因在於,escape() 只是為 ascii字符 做轉換工作,轉換成的 %unnnn 這樣的碼,如果要用更多的字符如 utf-8字符庫就一定要用 encodeuricomponent() 或 encodeuri() 轉換才可以成 %nn%nn 這的碼才可以。
js:encodeuricomponent —— decodeuricomponent;php: rawurlencode —— rawurldecode
*/