mysql编码的那点事

Mysql编码问题 

php页面可以向mysql插入英文字符,但就是不能插入中文字符,在cmd客户端也可从插入,这是困扰我两天的问题。

 

     在网上找了很多资料,最终确定了是字符编码这个地方出现了问题,首先要想通过php页面向mysql数据库插入中文字符,则必须要文件编码、代码的编码和mysql的编码保持一致性,我当前用的编码是utf-8,所以设置了文件的默认编码为utf-8之后,还会在每个php页面上加上 header("content-type:text/html;charset=utf-8")、mysql_query(“set names utf8”)

 

     接下来就是mysql编码问题了,也要做到将编码设置为utf-8,我的版本是win764位的mysql5.6免安装版的,在mysql.ini[mysqld]中添加character_set_server = utf8,千万不要添加default-character-set=utf-8,因为这样会导致你的mysql不能开启,然后再通过show variables like ‘%char%‘查看编码的设置,

 

Character_set_clientCharacter_set_connectionCharacter_set_databaseCharacter_set_results全都是utf-8的,基本没问题了。

 

     但是为了避免出现问题,我们尽量在创建数据库和表的时候就设置它的编码,create database if not exists databasename default charset utf8;create table if not exists table tablename (col type) default charset utf8;当然我们也可以修改他的默认编码,修改数据库编码alter database databasename default charset utf8;修改表的编码alter table tablename default charset utf8,这样基本就不会出现不能插入中文字符,或者是插入中文后显示乱码了。

 

mysql编码的那点事,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。