我用dw写php代码,已经针对utf-8做了如下设置:
1、所有文件都转换成utf8编码;
2、数据库都使用utf8字符集以及utf8_general_ci整理;
3、所有html页面都加上<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />;
4、所有css文件都加上@charset "utf-8"。我做了以上四点设置之后,数据库里的中文能正常读写并且到页面中显示,唯一的问题就是在mysql里的中文字符都是乱码,我在每个mysql查询的前面都加上set names "utf8"之后就好了。请问这个set names "utf8"一定要在每次查询前都加上吗?不加有没有什么问题?因为我之前没加的时候,中文字符一样可以正常读取,只是在mysql里看到的是乱码。
1、所有文件都转换成utf8编码;
2、数据库都使用utf8字符集以及utf8_general_ci整理;
3、所有html页面都加上<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />;
4、所有css文件都加上@charset "utf-8"。我做了以上四点设置之后,数据库里的中文能正常读写并且到页面中显示,唯一的问题就是在mysql里的中文字符都是乱码,我在每个mysql查询的前面都加上set names "utf8"之后就好了。请问这个set names "utf8"一定要在每次查询前都加上吗?不加有没有什么问题?因为我之前没加的时候,中文字符一样可以正常读取,只是在mysql里看到的是乱码。
1.数据表单编码。
2,传输编码。
3,数据存储编码。数据表单编码就如LZ控制的(X)Html文件本身的编码。
数传编码就是set names xxxx,传输编码一般在建立。链接后,初始化一次就行了。与在构造函数里最好,不用每次select之前调用。
数据存储编码就是数据在库中的存储编码。如果是历史数据迁移,特别是争对4.0以前的mysql数据迁移,所有存储都是latin1。数据存储编码不会明确的造什么麻烦,但不规范。就像一杯红酒要用玻璃杯装着一样。用其它任易类型都可以存储数据。你用塑料杯喝过红酒吗?基本上都是保证三点同步,规范了,在未来开发中才少了很多障碍。
这个不是问题,只要你网页中输出正常不就就ok了(至少基本目的是达到了)??
在mysql command line client里看到的也是乱码,可在php里更新和输出时都是正常的,这是怎么回事啊?
而且在每次连接数据库之后set name一下再插入记录,这样在navicat for mysql里看到的就没有乱码了,可在命令行里输出的还是乱码。
虽然以上两个问题都不影响正常使用。
PS:我的mysql在安装时就将默认编码设置成utf-8了。
set names 'utf8';
select [字段] from [表];
输出的汉字还是乱码。set names 'gbk';之后再查询,发现就显示正常了,难道我插入时不是utf-8编码?
可是我在html里定义了所有html页面都加上 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />;
所有css文件都加上@charset "utf-8"
在php里insert之前也set names='utf8';了
mysql在安装时选择的默认编码也是utf8,数据库也是utf8字符集。
怎么在mysql command里只能用gbk编码才能正常显示中文?
我的网页、css都是utf-8编码,可存进mysql里的汉字,在命令行里只能set names 'gbk';之后才能显示正常。