第一次建表不知什么原因,utf-8不能容纳多个中文字符,就先用gb2312代替建表,结果服务器数据库移植时遇到编码问题,头痛至极。这次闲时,重新建表试验证明utf-8可以承受多中文字符,这样,以后就可以尽量避免字符转化不清的问题了,方法如下:
mysql建表:
create table t_utf8
(
id int not null auto_increment,
title varchar(20) not null,
contnet varchar(300) defalut null,
primary key ('id')
)begin=MyISAM DEFAULT CHARSET =UTF8;
注:查询数据库时候把数据库的默认字符集设置成gb2312,否则打开数据库将看到一堆??。
php程序:
<?php
$link = mysql_connect(host,username,pwd)
mysql_select_db(database,$link);
/*
插入中文字符
mysql_query("SET NAMES utf8"); //保证插入到数据库中为utf-8数据
$re = mysql_query("insert into t_utf8(title,content) values('中文字符','中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集中文字符集')");
*/
mysql_query("SET NAMES utf8"); //保证以utf-8输出数据
$re = mysql_query("select * from t_utf8");
while($row = mysql_fetch_array($re))
{
echo " ".$row[1]."<br/>".$row[2];
}
?>