MySQL数据库编码、html页面编码、PHP或html文件本身编码要全部一致。
1、MySQL数据库编码:建立数据库时指定编码(如utf_general_ci),建立数据表、建立字段、插入数据时不要指定编码,会自动继承数据库的编码。数据库连接时,也有编码,可以在连接完数据库后,执行
mysql_query('SET NAMES utf8');//将utf8换成你的编码,如gbk。
2、html页面的编码,指的是这一行的设置:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3、PHP或html文件本身的编码:用editplus打开php文件或html文件,另存时,选择的编码,如果数据库和页面编码是gbk,则这儿的编码选择ansi;如果数据库和页面编码是utf-8,则这儿也选择utf-8。
4、另外要注意的是,Javascript或Flash中传递的数据是utf-8编码,如果数据库和页面编码是gbk,要进行转码,然后写入数据库。iconv('utf-8', 'gbk', $content);
5、在PHP程序中,可以加上一行,来指定PHP源程序的编码:header('Content-type: text/html; charset=utf-8');
6、记得将数据库编码方式改为utf8(用phpmyadmin),php页面编码方式改为utf8(用notpad++就可以改),mysql的my.ini页面改为utf8,如下:[mysql]
default-character-set=UTF8
# SERVER SECTION
[mysql]
default-character-set=UTF8
代码实例:
$conn=mysqli_init();
if(!$conn){
echo "mysqli_init error !!";
exit(0);
}
$ret=mysqli_real_connect($conn,"localhost","root","root",
"sleep",3306,"herder",MYSQLI_CLIENT_FOUND_ROWS);
mysqli_query($conn,"set names utf8");
运行后显示中文