產生這個問題的原因是,客戶端的瀏覽器有預設的編碼(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.建立資料庫如果要轉載本文請註明出處,免的出現版權紛爭,我不喜歡看到那種轉載...