1. html页面有 meta 设置为 utf-8 页面存为utf-8编码
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2. php页面有 header 设置为utf-8, 页面存为utf-8编码
<?php
header("Content-Type:text/html; charset=utf-8");
?>
3. 数据库操作之前 mysql_query("set names utf8");
4. mysql中 show variables like 'character_set%'; client,connection,database 均为 utf-8
配置my.ini文件
在[client]节点下添加
default-character-set=utf8
在[mysqld]节点下添加
character-set-server=utf8
collation-server=utf8_general_ci
然后重启mysql
5. 已经创建好的数据库及库中的表要如何更改为utf8
用alter语句(修改数据库的字符集不会改变原有数据库表的字符集)
修改数据库编码为utf-8
ALTER DATABASE `数据库名` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改数据库表编码为utf-8
ALTER TABLE `数据库表名` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改库表字段的编码为utf-8
ALTER TABLE `emp` CHANGE `name` `name` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci;
是将MYSQL数据库emp表中 name的字段编码改为utf8
6. phpmyadmin 登录时中文utf-8
以上情况下. 插入mysql中的中文在phpmyadmin中显示正常, 自己输出中文同样正常. 但是mysql命令行下select数据中文为乱码.
cmd无法输出utf-8字符, mysql下设置 set character_set_results = gb2312/gbk;(需要重启mysql服务以及cmd)
对于新创建的数据库 设置默认字符集为utf-8
CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
对于新创建的数据库表 设置默认字符集为utf-8
CREATE TABLE `test` (
`id` int(10) NOT NULL auto_increment,
`uid` varchar(10) NOT NULL default '0',
`regdate` date NOT NULL,
`remark` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf-8 AUTO_INCREMENT=5 ;
7. 用PHP读写数据库 在连接数据库之后:
$connection = mysql_connect($host_name, $host_user, $host_pass);
加入两行:
mysql_query("set character set 'utf8'");//读库
mysql_query("set names 'utf8'");//写库