在關於php顯示mysql亂碼問題上,前面我曾經**了一篇這樣的文章,但是在最近的一次開發中,還是出現了亂碼。其實上篇文章本身是正確的。最後我找到了,我之所以出現亂碼的原因,在這裡寫出來和大家分享。
我採用的作業系統是:freebsd6.2,當初安裝mysql的版本是5.1.20-beta;我是採用的ports預設安裝的,所以安裝完以後,mysql server端的編碼用的是預設的latin1。我在建立資料庫的時候,用的一下語句:
create database dbname default character set utf8 collate utf8_general_ci;
這樣,資料庫的編碼就是utf8 的。
可以通過 use dbname; status 命令進行查詢,可以顯示你的資料庫現在的編碼是什麼。
我本身的資料庫也是utf8的。我在匯入資料庫的時候,開始用的是:mysql -uroot -p dbname < dbname.sql;語句進行匯入的。但是這樣匯入的資料庫在phpmyadmin中得到的是亂碼;於是我修改了phpmyadmin的語言配置,在phpmyadmin/libraries 目錄下的select_lang.lib.php檔案中,把$globals['mysql_charset_map'] 全域性變數中的
'utf-8' => 'utf8', 改為'utf-8' => 'latin1', 這樣修改以後,phpmyadmin沒有出現亂碼,但是我的頁面當中依然存在亂碼,"set names utf8",也沒有啟到作用,這個時候我就覺得,資料庫在匯入的時候,好像沒有按照utf8編碼匯入的,可能是按照資料庫的伺服器端的編碼預設匯入的,於是我把資料庫刪除,重新建立,在匯入資料庫的時候,用了 --default-character-set=utf8 選項,這次頁面中,顯示正常,但是,phpmyadmin中又出現了亂碼,我想應該是把'utf-8' => 'latin1',該會來的時候了,於是把latin1重新設定為utf8。一切正常。我的頁面中和phpmyadmin的頁面中,同時顯示正常,再也沒有了亂碼。
想在這裡宣告一點:如果phpmyadmin出現亂碼,請檢查你匯入資料庫的時候的sql檔案的編碼問題和你的資料庫的編碼。確保他們統一。個人感覺,修改phpmyadmin而使phpmyadmin顯示正常,總覺得有不妥的地方。
php中json encode中文編碼問題
現象 眾所周知使用json encode可以方便快捷地將物件進行json編碼,但是如果物件的屬性中存在著中文,問題也就隨之而來了。json encode會將中文轉換為unicode編碼,例如 胥 經過json encode處理後變為 u80e5 最終的json中中文部分被替換為unicode編碼。我...
php 轉換中文亂碼,php中文編碼轉換問題
php中文編碼轉換的方法 1 使用iconv函式,為 string iconv string in string out string str 2 使用 mb convert encoding 函式。php中文編碼轉換的方法 一 iconvstring iconv string in charset...
python中中文編碼問題
編碼問題一直是很頭痛的問題 當字串是 u4e2d u56fd s u4e2d u56fd u6e05 u534e u5927 u5b66 str s 0 decode unicode escape encode euc kr print str 中國當字串是 東亞學團一中 print unichr ...