作者最近在练习PHP,可是却遇到些问题,其中浪费了最多的时间的莫过于php,mysql的编码问题.
直入主题,首先LINUX平台
进入mysql
[root@qingxinzui ~]# mysql -u root -p
mysql> show variables like ‘character%’;
#查询MYSQL的编码,因为作者的已经修改了,所以不再去弄了.
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.00 sec)
首先修改MYSQL配置文件
[root@qingxinzui ~]# vi /etc/my.cnf
default-character-set=utf8
init_connect=’SET NAMES utf8′
增加这两句,意思就是默认使用UTF-8,第二句就是针对连接的.
service mysqld restart 就可以了
接着是PHP的,一般yum安装的apache
都有设置默认的AddDefaultCharset UTF-8
有人说,修改为GB2312什么的,或者PHP页面头部加上编码格式强制执行
作者在测试过N次过后发现问题根本不是这些.当然,也许在头部加上UTF-8也是可以的
修改PHP文件的编码,计事本打开PHP文件,选择另存为,编码格式修改为UTF8,就可以了.
接下来是WINDOWS平台
其实和LINUX下差不多,只是LINUX下MYSQL的配置文件为my.ini
添加上面的内容就可以,或者使用MYSQL命令.(最好设置有全局变量,方便操作)
如果是XAMPP测试环境的话,修改my.ini
会有以下参数,默认是注释的,修改过来就可以了.
## UTF 8 Settings
init-connect=’SET NAMES utf8′
collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake
character_sets-dir=”E:/xampp/mysql/share/charsets”
关于作者