課程
/后端開發
/PHP
/PHP與MySQL關系大揭秘
插入進去后 數據庫中的中文是亂碼 ? 這時候怎么辦
2016-07-24
源自:PHP與MySQL關系大揭秘 2-9
正在回答
出現亂碼一般是兩種情況:
1.mysql表的編碼問題:
查看步驟:打開mysql -> 進入數據庫 -> 輸入 show create table 表名(填表名)->看看DEFAULT?CHARSET 是不是utf8
不是的話,可以通過以下兩種途徑進行修改:
? 1>alter table 表名 character set utf8
? 2>用phpMyadmin進入數據庫 ->進入表 ->點擊結構 -> 點擊修改 -> 在排序規則那一欄改為utf8_general_ci
是utf-8的話,先看看是表中的數據是否亂碼,如果是亂碼了,就重新創建吧,創建database的時候在最后加上ENGINE=InnoDB DEFAULT CHARSET=utf8 就好了
2.瀏覽器編碼問題。我這里列舉Chrome的設置編碼的方法。
點擊右上角三條橫線 -> 更多工具 -> 編碼 -> 點擊自動檢測,點擊UTF-8
最后,如果你發現,
? ? 1.你數據庫沒有問題,
? ? ? 你可以通過 show variables like 'char%';命令查看
? ? ??
? ?2.瀏覽器也沒有問題,
? ?3.PHP以UTF-8的方式發送查詢,而且寫入(insert)數據庫的時候亂碼了
? ?4.可以試試,先設置在mysql的編碼?SET NAMES 'utf8';?
set names ?GBK,因為你的數據庫使用的編碼可能是UTF8的所以要先打前面的代碼才能看。
剛才調好了 ? ? ? 原來是在mysqli_query('set names utf8 ') 的參數必須要兩個才行,不然沒用
我在代碼中 mysqli_query('set names utf8 ') 依舊沒用 ? ,在另一個數據庫中依舊如此,數據庫和瀏覽器的沒問題
自己敲的,數據庫也設置了utf8 然后還是在表中是亂碼
你是復制老師的代碼了吧?他的SQL語句設置的是utf8的編碼。你數據庫里的編碼一定也要是UTF8哦。
舉報
讓我們一起走上探秘之旅,找尋php和mysql戀愛的真諦
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-07-25
出現亂碼一般是兩種情況:
1.mysql表的編碼問題:
查看步驟:打開mysql -> 進入數據庫 -> 輸入 show create table 表名(填表名)->看看DEFAULT?CHARSET 是不是utf8
不是的話,可以通過以下兩種途徑進行修改:
? 1>alter table 表名 character set utf8
? 2>用phpMyadmin進入數據庫 ->進入表 ->點擊結構 -> 點擊修改 -> 在排序規則那一欄改為utf8_general_ci
是utf-8的話,先看看是表中的數據是否亂碼,如果是亂碼了,就重新創建吧,創建database的時候在最后加上ENGINE=InnoDB DEFAULT CHARSET=utf8 就好了
2.瀏覽器編碼問題。我這里列舉Chrome的設置編碼的方法。
點擊右上角三條橫線 -> 更多工具 -> 編碼 -> 點擊自動檢測,點擊UTF-8
最后,如果你發現,
? ? 1.你數據庫沒有問題,
? ? ? 你可以通過 show variables like 'char%';命令查看
? ? ??
? ?2.瀏覽器也沒有問題,
? ?3.PHP以UTF-8的方式發送查詢,而且寫入(insert)數據庫的時候亂碼了
? ?4.可以試試,先設置在mysql的編碼?SET NAMES 'utf8';?
2017-02-18
set names ?GBK,因為你的數據庫使用的編碼可能是UTF8的所以要先打前面的代碼才能看。
2016-07-25
剛才調好了 ? ? ? 原來是在mysqli_query('set names utf8 ') 的參數必須要兩個才行,不然沒用
2016-07-25
我在代碼中 mysqli_query('set names utf8 ') 依舊沒用 ? ,在另一個數據庫中依舊如此,數據庫和瀏覽器的沒問題
2016-07-24
自己敲的,數據庫也設置了utf8 然后還是在表中是亂碼
2016-07-24
你是復制老師的代碼了吧?他的SQL語句設置的是utf8的編碼。你數據庫里的編碼一定也要是UTF8哦。