php徹底解決PHP在URL中傳遞中文時亂碼的方案

2021-06-18 07:30:33 字數 921 閱讀 6446

產生這個問題的原因是,客戶端的瀏覽器有預設的編碼(ie一般是gbk),因此客戶在提交資料的時候是以gbk的形式提交給接受頁面的,而接受頁面如果強行把頁面編碼設定成utf-8時候就會出現這個情況。

而ie和cheome的預設編碼不一樣(chrome根據頁面編碼而設定的)因此導致不通瀏覽器會有不通的效果。

解決方法之一:在國內統一用gbk/gb2312形式編碼。

解決方法之二:在utf-8編碼的頁面判斷url的引數中是否有gbk編碼,如果有的話就轉換成utf-8,這樣就完美啦,**如下:

<?

header("content-type: text/html; charset=utf-8");

$q = $_get["q"];

//if (preg_match("/^[\x80-\xff]+$/", $q))

exit($q);

?>

發現仁兄的乙個utf-8正規判斷函式,用這個更專業

function check_utf8($str)  

} }

return true;

} // end of check_utf8

if (check_utf8($q))

$q ? $q : $q="**";

簡單辦法:任意編碼轉為utf-8編碼

urldecode(mb_convert_encoding($_get['name'], 'utf-8', array('utf-8', 'gbk')));

PHP徹底解決mysql中文亂碼

mysql是我們專案中非經常常使用的資料型資料庫。可是由於我們須要在資料庫儲存中文字元,所以經常遇到資料庫亂碼情況。以下就來介紹一下怎樣徹底解決資料庫中文亂碼情況。資料庫執行 show variables like char 看到字符集都是latin1 建立資料庫 create database t...

徹底解決PHP與mysql的亂碼問題 問題彙總

徹底解決php與mysql的亂碼問題,因為最近有人常常問這個問題,所以我乾脆彙總一下發一篇文在此,以後直接給他 讓他來看就好了.同樣的問題回答很多遍實在很煩.解決方法很簡單,就是要統一編碼,假如我們統一使用utf 8編碼 1.建立資料庫如果要轉載本文請註明出處,免的出現版權紛爭,我不喜歡看到那種轉載...

徹底解決PHP與mysql的亂碼問題 問題彙總

徹底解決php與mysql的亂碼問題,因為最近有人常常問這個問題,所以我乾脆彙總一下發一篇文在此,以後直接給他 讓他來看就好了.同樣的問題回答很多遍實在很煩.解決方法很簡單,就是要統一編碼,假如我們統一使用utf 8編碼 1.建立資料庫如果要轉載本文請註明出處,免的出現版權紛爭,我不喜歡看到那種轉載...