本公司mysql資料庫預設的編碼是utf8,如果這種編碼與你的php網頁不一致,可能就會造成mysql亂碼.
mysql中建立表時會讓你選擇一種編碼,如果這種編碼與你的網頁編碼不一致,也可能造成mysql亂碼.
mysql建立表時新增欄位是可以選擇編碼的,如果這種編碼與你的網頁編碼不一致,也可能造成mysql亂碼.
使用者提交頁面的編碼與顯示資料的頁面編碼不一致,就肯定會造成php頁面亂碼.
如使用者輸入資料的頁面是big5碼, 顯示使用者輸入的頁面卻是gb2312,這種100%會造成php頁面亂碼.
php頁面字符集不正確.
php連線mysql資料庫語句指定的編碼不正確.
注意:
很多人都懷疑mysql版本不一致會導致亂碼,相信看了本說明你就不會這樣認為了.平時你在某些**看到的文字可能有幾種編碼, 如你看到乙個繁體字,它有可能是big5編碼,也有 可能是utf-8編碼的,更有可能是gb碼的,沒錯,也就是說有簡體編碼的繁體字,也有繁體編碼的簡體字,一定要了解這一點.
如果你是做乙個簡體編碼的網頁,編碼定為gb2312,如果有香港和台灣地區的訪客提交繁體的資訊,就可能會造成亂碼,解決方法:
將**編碼設為 utf-8,這樣可以相容世界上所有字元,如果**已經運作了好久,已有很多舊資料,不能再更改簡體中文的設定,那麼建議將頁面的編碼設為 gbk, gbk與gb2312的區別就在於:gbk能比gb2312顯示更多的字元,要顯示簡體碼的繁體字,就只能用gbk.
使用mysql+php產生亂碼的原因都了解得很清楚了,那麼解決就不困難了.
mysql+php產生亂碼的解決辦法:
如果安裝mysql的編碼已不能更改,很多朋友是購買虛擬主機建立**,無權更改mysql的安裝編碼,這一關我們可以跳過,因為只要後面的步聚正確,一樣能解決亂碼問題
修改資料庫編碼,如果是資料庫編碼不正確,可以在phpmyadmin 執行如下命令:
alter database 'test' default character set utf8 collate utf8_bin
以上命令就是將test資料庫的編碼設為utf8.
修改表的編碼:
alter table 'category' default character set utf8 collate utf8_bin
以上命令就是將乙個表category的編碼改為utf8.
修改欄位的編碼:
alter table 'test' change 'dd' 'dd' varchar( 45 ) character set utf8 collate utf8_bin not null
以上命令就是將test表中 dd的字段編碼改為utf8.
如果是這種情況容易解決,只需檢查下頁面,修改原始檔的charset即可.
這種情況也是修改頁面charset即可.
在連線資料庫的語句中.
mysql_connect('localhost','user','password');
mysql_select_db('my_db');
mysql_query("set names utf8;"); //select 資料庫之後加多這一句
為了避免php頁面亂碼的發生,php頁面開始第一句
header("content-type:text/html; charset=utf-8");
//強行指定頁面的編碼,以避免亂碼
如果上面的操作後 還是顯示中文亂碼
那應該是在匯入sql 檔案時編碼錯誤
登陸mysql ,在命令列中先輸入
set name 編碼; 比如 utf8
然後再匯入sql檔案
source sql檔案路徑
這種情況一般都是window 下匯出sql 檔案 ,在linux 下再匯入 才會出現
CentOS 中文配置 中文亂碼 中文輸入問題解決
centos如果裝英文版,如果在系統語言裡改為漢語後會導致所有的顯示都是亂碼的方塊。那麼需要兩個中文支援的包 fonts chinese 3.02 12.el5.noarch.rpm fonts iso8859 2 75dpi 1.0 17.1.noarch.rpm 乙個是中文字型,乙個是字型顯示,...
中文設定 spotify設定中文
有不少小夥伴使用spotify軟體聽歌,但是這款 軟體的介面預設是英文的,並不支援簡體中文,如果您想要將其設定為中文該如何設定,下面就為大家介紹一下怎樣將spotify設定中文,希望以下的介紹能夠幫助到您。spotify設定中文 1 spotify的介面語言是跟隨系統。它本身不支援簡體中文,如果你系...
中文路徑問題,中文url
在使用rails的webrick過程中碰到中文url問題,原本認為很簡單的事情其實並不簡單。為了了解中文路徑問題,特別在apache,iis下面做了試驗。過程如下 首先要準備好gb2312和utf 8的檔名。這裡使用python來獲得。s gb 我.txt print s gb 我.txt s gb...