MySQL資料亂碼的解決方案

來源:互聯網
上載者:User
第一解決方案:

亂碼問題簡單說就是資料庫寫入讀取,網頁檔案,網頁顯示時幾個環節的編碼不一致造成的。

亂碼問題
寫入時:頁面提取寫入資料編碼和寫入資料庫時編碼不一致
讀取時:讀取後所用編碼與資料庫寫入時不一致
顯示時:編碼與資料庫讀取後的資料不一致

很顯然只有三者都統一才行:(以utf-8為例)
1:頁面提交資料編碼utf-8(這也可以算是顯示頁面編碼),
2:資料庫寫入時編碼:alter database db default character set ‘utf8’collate ‘utf8-general-ci’,
3:資料庫讀取時所用編碼:mysql_query(“set names ‘utf8’”);
4:顯示頁面編碼:<meta http-equiv="Content-type"content=“text/html, charset=utf-8”>

 
第二解決方案:

進入MYSQL命令列:
mysql> alter database you_dbname default character set 'utf8';

mysql> SET character_set_client='utf8';
mysql> SET character_set_connection='utf8'
mysql> SET character_set_results='utf8'

第三解決方案:

(暫時只針對MySQL 5.0.16 亂碼問題處理辦法,其他版本未測試。)
1 設定phpMyAdmin

  Language:Chinese simplified (zh-utf-8)

  MySQL 字元集:UTF-8 Unicode (utf8)

  MySQL 串連校對:gbk_chinese_ci

2 建立資料庫時

  整理設定成 gbk_chinese_ci

3 用SQL建立表中

  ENGINE=MyISAM DEFAULT CHARSET=gbk;
  ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=40 ;

4 檢查表結構中

  varchar(100) 的整理屬性為gbk_chinese_ci
  其它類型的整理屬性為空白

5 代碼中加上

  $db->query("SET CHARACTER SET GBK");  Linux下需要,Windows下不需要
  這個相當於Connection Character Sets and Collations

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.