PHP+mysql亂碼問題

來源:互聯網
上載者:User
 

先講下兩個字元集的區別:

gb2312是標準中文字元集。

UTF-8 是 UNICODE 的一種變長字元編碼,即 RFC 3629,可以解決多種語言文本顯示問題,從而實現應用國際化和本地化。 UTF-8 是位元組順序無關的,它的位元組順序在所有系統中都是一樣的,排序更加容易。因此 UTF-8 具有更高的效能。

不過如果是純英文的話,用什麼都可以,用GB2312也沒問題。

再分析下出現亂碼的原因

mysql+php產生亂碼原因:
1. mysql資料庫預設的編碼是utf8,如果這種編碼與你的PHP網頁不一致,可能就會造成MYSQL亂碼.
2. MYSQL中建立表時會讓你選擇一種編碼,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼.
3. MYSQL建立表時添加欄位是可以選擇編碼的,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼.
4. 使用者提交頁面的編碼與顯示資料的頁面編碼不一致,就肯定會造成PHP頁面亂碼.
5. 如使用者輸入資料的頁面是big5碼, 顯示使用者輸入的頁面卻是gb2312,這種100%會造成PHP頁面亂碼.
6. PHP頁面字元集不正確.
7. PHP串連MYSQL資料庫語句指定的編碼不正確.

最後講 根治 的處方:
UTF8來舉例

1、 保證頁面的編碼
如果是html 那麼別忘了在 檔案開頭寫上

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
如果是 php那麼 記得在檔案最上方寫上

lzy  2008, View php source
 
  1. header("Content-type: text/html;charset=utf-8");
Parsed in 0.018 seconds

保證檔案的編碼必須是 UTF-8
解決方案 (1)把你的檔案用記事本開啟 ,選檔案另存新檔,在檔案名稱的下面有個編碼  看看字元集是不是UTF-8 如果不是請修改

 

2、 保證資料庫是UTF8
在添加表的時候  需要設定編碼為 UTF8
如果已經添加了 那麼可以
在PHPMYADMIN 中查看錶結構  的‘整理’屬性上 是否為 utf8_general_ci
如果不是 請修改

lzy  2008, View php source
 
  1.  
  2. ALTER TABLE 'gbook' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
  3.  
Parsed in 0.024 seconds

 

資料庫和欄位 的編碼同理:

lzy  2008, View php source
 
  1.  
  2. ALTER DATABASE 'testdata' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
  3. ALTER TABLE ' testdata' CHANGE 'test' 'test' VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin
Parsed in 0.049 seconds

 

3、 PHP在串連資料庫的時候加上一句:set names utf8

lzy  2008, View php source
 
  1.  
  2. mysql_connect('localhost','user','password');
  3. mysql_select_db('mydb');
  4. mysql_query("set names utf8;");//**設定字元集***
  5.  
Parsed in 0.046 seconds

 

這樣就做到萬無一失了,如果還有什麼問題 大家可以給我留言 我會及時回複的

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.