关于乱码,这是个糟糕的问题!涉及到不少地方php
解决思路:程序所涉及的环境字符集不一致致使mysql
mysql出现乱码通常是mysql数据库内部的字符集出现问题sql
为了防止出现一些后续的问题数据库
在建库的时候就要设置默认字符集服务器
CREATE DATABASE 库名 DEFAULT CHARSET=UTF8;
其余的一些操做post
查看mysql各个地方的字符集设置状况编码
SHOW VARIABLES LIKE 'character%';
顺便记录一下mysql数据库 各个字符集的做用操作系统
character_set_clientcode
解析客户端sql语句的字符集server
character_set_connection
一般与character_set_client保持一致,当进入查询时,会将sql语句 由character_set_client转变为 character_set_connection字符集
character_set_database
新建数据库的默认字符集,一般建库的时候就指定一下默认的字符集
默认数据库的字符集决定了新建表的默认字符集
默认表的字符集又决定了字段的默认字符集
换句话说,若是咱们建库指定了默认字符集,建表的时候就不用去指定默认字符集了
若是建表,建库都不指定默认字符集,默认就会用character_set_database初始的字符集去建表,
而一般状况下,初始的character_set_database字符集是西欧的字符集,对英文友好,对中文不友好!
character_set_filesystem
文件系统字符集编码,主要用于解析文件名称的字符串字面值(默认就好)
character_set_results
返回给客户端的查询结果或者错误提示的字符集
character_set_server
服务器端的默认编码字符集
character_set_system
mysqlsever储存元数据的编码字符集(默认就好)
character_set_dir
mysql字符集编码储存的文件夹
若是须要改动某个字符集,能够用如下相似的语句
SET character_set_server = utf8;
若是以上都改了,仍是出现问题,那说明mysql内部的字符集是没有问题的,剩下的应该就是外部环境的字符集的问题
网上找了好久,发现多是操做系统字符集的问题
打开cmd 输入 chcp 查看活动代码页
win10默认用的GBK字符集,修改字符集为 UTF-8
修改重启后,查看字符活动代码页
这时候再次POST提交表单,导入数据库中文就能够正常显示了!