A. php get傳遞的中文參數地址欄顯示
這個是瀏覽器自動url編碼
其實你沒必要管這個
當你程序接受這個參數的時候,無論中文有沒有被編碼,接受到後,他都是中文!
沒有什麼影響!
其實,瀏覽器對url中的中文或者特殊符號進行編碼,還是一件好事,防止參數傳遞出錯!
B. PHP GET參數特殊符號有什麼規律
這是URI(Uniform Resource Identifier)編碼如果URL中有漢字,就必須編碼後使用
例如,":"字元用十六進制來表示為3A,所以必須使用%3A來表示,"/"字元用十六進制來表示為2F,所以必須使用%2F來表示"/"字元。
一般空格是轉換為加號 漢字以及特殊字元都要根據16進制的內容再在前門加一個%進行轉換
而這裡面分為不同的編碼規則 有GBK、UTF8 所以在編碼的時候要進行設置
下面是一個java獲取字元串編碼的例子
//百分比編碼:獲取某個字元的URL編碼,編碼是用URLEncoder.encode(),解碼是用URLDecoder.decode()函數
Stringtext;
try{
text=URLEncoder.encode("http://.com","iso-8859-1");
System.out.println(text);
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
C. 通過php的get或是gost,傳遞的中文要不要用js先編碼一下
POST不需要,GET需要。
如果用的是UTF-8不編碼的話就會亂碼。
D. PHP通過GET提交方式提交中文無法加入MYSQL資料庫
首先看你資料庫中是不是有fight 這個表 之後你可以在mysql_query($geto) 之前用echo $geto;列印一下你的sql語句 之後將語句用phpmyadmin查看下是否正確 其他的就沒有了 這是兩個比較容易出錯的地方
E. php 用get方式傳遞中文參數,無法用strpos判斷中文字處於第幾個
嘗試使用urldecode解碼,中文字元在地址欄傳遞時會被解析為十六進制字元
F. PHP 接收GET中文亂碼問題
哎,又是亂碼問題,我不多說,直接上代碼
if(!preg_match('/^.*$/u',$_REQUEST['word'])){
$username=iconv('GB2312','UTF-8',$_REQUEST['word']);
}
上面的代碼就是判斷傳來的是數據類型是不是UTF-8編碼,如果不是就轉成轉UTF-8編碼,當然只支持GB2313的,如果傳遞過來的編碼是big5的話也還是出現亂碼,但是一般瀏覽器中人用的大部默認是GB2312或是UTF8的,先用著再說
G. PHP中$_GET和$_POST作用
$_GET接受前台通過get傳值傳過來的值
$_POST接受前台通過post傳值傳過來的值
H. php中form通過get傳中文字元自動用urlencode轉換
不需要做任何處理,這是由瀏覽器自動控制的。
帶有中文的地址顯示上更友好,但是,如果你復制該地址到一個文本文件中,你應該會看到粘貼的結果是已經用url編碼的結果咯。
請不要在提交時自行編碼,否則反倒會造成問題,即當你提交時進行了額外的urlencode的話,php端必須也同樣額外的進行一次urldecode,否則你無法得到正確的搜索結果了。
urlencode並不是加密,只是格式不同而已。再說用戶自己定製的搜索關鍵詞,你加密它有什麼意義?用戶難道不知道自己寫的什麼嗎,是不是這個道理。