在操作mysql資料庫時,如果出現了亂碼,則是一件十分頭痛的事情。 MySQL會出現中文亂碼的原因不外乎下列幾點:1.server本身設定問題,例如還停留在latin1;2.table的語系設定問題(包含character與collation);3.客戶端程式(例如php)的連線語系設定問題。所以一般強烈建議使用utf8! 因為utf8可以兼容世界上所有字符! 下面我們就把mysql數據庫中文亂碼問題的解決方案總結一下,展示給朋友們參考。
mysql資料庫中文亂碼
在使用mysql5.7時,會發現透過web端寫入中文後會出現亂碼,但在資料庫中直接操作SQL語句插入資料後中文就顯示正常
1)開啟mysql控制台,輸入指令show variables like 'character%';
2)修改my.ini檔
# 3)重新啟動後使用第一步的指令查看
4)輸入指令:set names utf8;
MySQL是我們專案中非常常用的資料型資料庫。但是因為我們需要在資料庫中保存中文字符,所以經常遇到資料庫亂碼情況。以下就來介紹如何徹底解決資料庫中文亂碼狀況。網路上很多答案都是直接在session層級設定mysql的字元編碼,這是治標不治本的方法。我們還是要從源頭解決這個問題。那就是修改mysql預設的設定文件,把它的字元集修改成能夠使用中文字元的UTF8就OK了。
以前的國外主機用的Mysql是4.x系列的,感覺還比較好,都無論GBK和UTF-8都沒有亂碼,沒想到新的主機的Mysql是5.0版本的,導入資料後,用Php讀出來全是問號,亂碼一片,記得我以前也曾經有過一次切換出現亂碼的經驗,原因肯定是Mysql版本之間的差異問題。
PHP及網頁使用UTF-8編碼,資料庫是sql server2008,使用預設編碼(936 ,即GBK編碼),當讀取資料庫資料時,使用php自帶的json_encode()回到前端,結果中文不顯示。
如果要將中文正常插入到sql server 2008中,還要加入一條代碼:$query = iconv("utf-8", "gbk//ignore", $query);/ /為了解決中文亂碼問題
首先要指定你的升級後的database及table及field的character set,一般來說我們用gb2312或是utf8的,如果不同時使用多種編碼,只要指定database就可以,可以在建庫的sql語句加上對應的character set,在phpMyAdmin裡也可以修改。
如果網站已經運作了好久,已有很多舊資料,不能再更改簡體中文的設定,那麼建議將頁面的編碼設為GBK, GBK與GB2312的區別就在於:GBK能比GB2312顯示更多的字元,要顯示簡體碼的繁體字,就只能用GBK。
相關問答
【相關推薦】
1. php中文網免費影片教學:《六天帶你玩MySQL影片教學》
#2. php中文網相關文章:《MySQL 5.1參考手冊》
以上是mysql資料庫中文亂碼的解決方法匯總的詳細內容。更多資訊請關注PHP中文網其他相關文章!