修改所有編碼(三碼合一):文件編碼,頁面編碼聲明,數據庫字符集
此次將所有編碼都設為utf-8,以eclipse for PHP為例:
修改文件編碼
可將eclipse編碼設置為utf-8,具體過程如下


將使用到的文件類型的編碼修改為utf-8,然后點擊update。
頁面編碼聲明
在PHP頁面的<?php ?>標簽對之間使用
header('Content-type : text/html; Charset=UTF-8');
聲明頁面編碼為utf-8 在html頭部
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
來聲明頁面編碼為utf-8。
數據庫字符集
查看當前數據庫編碼:
show variables like '%char%';

show variables like'collation_%';


utf8mb4是utf8的超集,所以這樣的設置也能正常插入漢字。一般情況下出問題的地方為character_set_database與character_set_server的值為latin1。
那么我么可以修改數據庫配置文件(my.ini),5.7后沒有這個配置文件:
在[client]節點下添加
default-character-set=utf8
在[mysqld]節點下添加
character-set-server=utf8 collation-server=utf8_general_ci
修改完后重新啟動mysql,再次查看數據庫編碼,就可以看到character_set_database與character_set_server的值都變為utf8。
修改數據庫,數據表和字段的編碼:
修改數據庫編碼格式:
alter database <數據庫名> character set utf8;
修改數據表編碼格式:
alter table <表名> character set utf8;
修改字段編碼格式:
alter table <表名> change <字段名> <字段名> <類型> character set utf8;
例:
alter table user change username username varchar(20) character set utf8 not null;
(修改user表中的username字段的編碼格式為utf8)。
但是如果要對所有字段一個一個進行設置,確實是挺麻煩的,那么怎么一次性完成對表中所有字段的編碼設置呢,emmmmmm.......看下面:
alter table <表名> convert to character set utf8;
修改過后,不會對原本的數據生效,新插入的才會生效。
