您好,登錄后才能下訂單哦!
處理mysql 編碼問題
?
我們經常會遇到一些向MySQL數據庫中插入中文,但是select出來的時候,卻是亂碼。
?
一、查看庫、表字符集命令
1.查看數據庫支持的所有字符集
Show ?character set?(show char set)
?
2.查看當前狀態,里面當然包括字符集的設置
Status (/s)
?
?
?
3.查看系統字符集設置,包括所有的字符集設置
Show? variables?like? ‘%char%’;
4.查看數據表中字符集設置
Show? full?columns? from? tablename ;
也可以查看表結構
Show? create?table? tablename\G;
5.查看數據庫編碼(數據庫結構)
Show? create?database? dbname;//創建數據庫指定的字符集
?
二、創建庫表列時要指定字符集(要統一)
1、服務器級
在安裝MySQL時可以設置服務器的默認編碼格式,也可對my.ini做修改,修改[mysqld]里面的character_set_server=utf8,則可設置character_set_server的值。
2.數據庫級
Create? database?? dbname?default? character? set?utf8;
注意,如果不指定默認的字符集,則系統會根據character_set_database的值進行設置
3.表級
Create? table?dbname.tbname(id varchar(20) not null, name vharchar(20))engine=innoDB? default? charset=utf8;
注:定義表的默認字符集為utf8,即使character_set_database為gbk,但是表的列都為utf8。如果沒有定義表的默認字符集,則他會按照character_set_database的值來設置
?
4.列級
Create? table?db1.tb2(id? varchar(20)? not?null, name? varchar(20)? character?set utf8);
注:如查沒有指定列字符集、就使用表字符集、如查指定了就使用指定的。
圖中:show? create?table db1.tb2//是查看表結構
?
三、修改字符集
1.修改character_set_connection、character_set_client、character_set_results三值
對于一個連接來說、可以用
Set?names? utf8來使用上面三個值改成utf8;
Set?name? ‘charset_name’; 相當于
Set?character_set_client = charset_name;
SET character_set_results = charset_name;?
SET character_set_connection = charset_name;
?
2.修改character_set_database字段(也就是改數據庫字符集)
Alter? database?db_name? default? character?set? charset_name;
?
?
3.修改character_set_server字段
最簡單的方法是直接改my.ini配置文件里面[mysqld]的字段,增加character-set-server=gbk,然后重啟mysqld,則可改為你想要的字符集。
?
4.修改表的字符集
Alter? table?tbname? default? character?set? charsetname;
Alter? table?tb1? default? character?set? utf8
?
5.修改列的字符集
Alter? table?tbname? modify? age?varchar(30)? character? set?utf8;
?
總結:
1、建庫、建表、建字段設置統一編碼。
2、PHP作為mysqle服務器客戶端、連接編碼set names utf8/gbk;
3、設置php返回給瀏覽器數據的編碼。(Content-Type,header(),<meta>)
<meta http-equiv="Content-Type"content="text/html; charset=gb2312" />
header("Content-type:text/html;charset=utf-8");
4、Php文件本身保存的編碼(文件編碼、通過文本編輯器設置)
5、安裝mysql時設置好編碼。(裝好后可修改my.ini)
?
?
微信掃一掃?、關注公眾號
?? 不定時分享資料視頻
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。