傳遞中文參數,然後修改資料庫教程的。
代碼如下 |
複製代碼 |
<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
*/