過JS向PHP頁面傳遞中文引數的兩種方法
阿新 • • 發佈:2019-01-25
在網上找的,先留下來,以備後用,看評論說,這個是針對UTF-8編碼的
暫時找到了兩種最常用的方法
////////////////////////////////////
// 第一種 直接URL編碼 比較方便
JS:
- <script type=”text/javascript”>
- string = encodeURIComponent(string);
- location.href = index.php?keyword=’+string;
- </script>
php:
-
$keyword = (isset($_GET
//第二種使用escape編碼比較複雜 但兼任性似乎要好,通過ajax傳遞的時候可能需要
JS:
[javascript] view plain copy
- ……..
- $.getJSON(“admin.php?action=”+escape(action),function(json){
- })
- …………
PHP:
- function unescape($str) { //定義unescape函式
- $str = urldecode($str);
-
preg_match_all(“/(?:%u.{4}|&#x.;|&#d+;|.+)/U”,$str
- $ar = $r[0];
- foreach($aras$k=>$v) {
- if(substr($v,0,2) == “%u”)
- $ar[$k] = iconv(“UCS-2BE”,”utf-8″,pack(“H4″,substr($v,-4)));
- elseif(substr($v,0,3) == “&#x”)
- $ar[$k] = iconv(“UCS-2BE”,”utf-8″,pack(“H4″,substr($v,3,-1)));
- elseif(substr($v,0,2) == “&#”) {
-
$ar[$k] = iconv(“UCS-2BE”,”utf-8″,pack(“n”,
- }
- }
- return join(“”,$ar);
- }
- $action=unescape($_GET["action"]);