<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[Mysql数据库UTF－8编码问题汇总]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[数据库技术]]></category>
<pubDate>Thu, 17 Apr 2008 02:26:22 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	建表时先加上default charset=utf8;<br/><br/>插入中文数据之前(Mysql命令提示符下)是用set names gb2312;<br/><br/>在php页面中设置是mysql_query(&#039;SET NAMES UTF8&#039;);<br/><br/>在php页面(已设定为utf8后)中插入中文数据不会出现乱码,应该插入数据库的时候就是以utf8字符集插入中文数据的故不会出现问题!<br/><br/>在php页面前面不要忘了加上header(&#039;content-type;text/html;charset=utf-8&#039;);<br/><br/>大家在MySQL命令提示符下想查看数据,中文数据有可能是如下 &#039;?????&#039;<br/><br/>所以大家想查看到正确的中文要与插入中文数据一样使用set names gb2312;<br/><br/><br/>例子:<br/><br/>CREATE DATABASE mydb;<br/><br/>USE mydb5;<br/><br/>CREATE TABLE news<br/>(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;news_id int not null auto_increment,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;news_title varchar(100) not null,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;news_contents text not null,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;news_date datetime not null,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;primary key(news_id)<br/>)default charset=utf8;<br/><br/>set names gb2312;&nbsp;&nbsp;&nbsp;&nbsp;/*关键!插入中文数据要加上*/<br/><br/>INSERT INTO news VALUES(null, &#039;新闻1&#039;, &#039;111111&#039;, now());<br/>INSERT INTO news VALUES(null, &#039;新闻2&#039;, &#039;222222&#039;, now());<br/>INSERT INTO news VALUES(null, &#039;新闻3&#039;, &#039;333333&#039;, now());<br/>INSERT INTO news VALUES(null, &#039;新闻4&#039;, &#039;444444&#039;, now());<br/>INSERT INTO news VALUES(null, &#039;新闻5&#039;, &#039;555555&#039;, now());<br/><br/>Microsoft Windows XP [版本 5.1.2600]<br/>(C) 版权所有 1985-2001 Microsoft Corp.<br/><br/>C:&#92;Documents and Settings&#92;YSDH.YSDH-0&gt;cd &#92;<br/><br/>C:&#92;&gt;mysql -h localhost -uroot -p<br/>Enter password: ******<br/>Welcome to the MySQL monitor.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Commands end with ; or &#92;g.<br/>Your MySQL connection id is 6 to server version: 5.0.22-community-nt-log<br/><br/>Type &#039;help;&#039; or &#039;&#92;h&#039; for help. Type &#039;&#92;c&#039; to clear the buffer.<br/><br/>mysql&gt; use mydb;<br/>Database changed<br/>mysql&gt; INSERT INTO vote VALUES(null,&#039;你是从哪里了解到本站的?&#039;,1,default);<br/>Query OK, 1 row affected (0.00 sec)<br/><br/>mysql&gt; set names utf8;<br/>Query OK, 0 rows affected (0.00 sec)<br/><br/>mysql&gt; INSERT INTO vote VALUES(null,&#039;你是从哪里了解到本站的?&#039;,1,default);<br/>ERROR 1406 (22001): Data too long for column &#039;vote_title&#039; at row 1 (varchar(100) 还不够?)<br/>mysql&gt; describe vote;<br/>+------------+--------------+------+-----+---------+----------------+<br/>&#124; Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124; Null &#124; Key &#124; Default &#124; Extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>+------------+--------------+------+-----+---------+----------------+<br/>&#124; vote_id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; int(11)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; NO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124; PRI &#124; NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; auto_increment &#124;<br/>&#124; vote_title &#124; varchar(100) &#124; NO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124; NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; vc_id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; int(11)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; NO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124; NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; votes_sum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; int(11)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; NO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>+------------+--------------+------+-----+---------+----------------+<br/>4 rows in set (0.00 sec)<br/><br/>mysql&gt;<br/><br/>代码一:<br/><br/><br/>Microsoft Windows XP [版本 5.1.2600]<br/>(C) 版权所有 1985-2001 Microsoft Corp.<br/><br/>C:&#92;Documents and Settings&#92;YSDH.YSDH-0&gt;cd &#92;<br/><br/>C:&#92;&gt;mysql -h localhost -uroot -p<br/>Enter password: ******<br/>Welcome to the MySQL monitor.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Commands end with ; or &#92;g.<br/>Your MySQL connection id is 458 to server version: 5.0.22-community-nt-log<br/><br/>Type &#039;help;&#039; or &#039;&#92;h&#039; for help. Type &#039;&#92;c&#039; to clear the buffer.<br/><br/>mysql&gt; use mydb;<br/>Database changed<br/>mysql&gt; show tables;<br/>Empty set (0.00 sec)<br/><br/>mysql&gt; set names utf8; //设置数据库字符集为utf8<br/>Query OK, 0 rows affected (0.00 sec)<br/><br/>mysql&gt; CREATE TABLE vote<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; (<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vote_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vote_title varchar(100) not null,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vc_id int not null,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; votes_sum int not null default 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; )ENGINE=MyISAM DEFAULT CHARSET=utf8//创建数据表,字符集设定为utf8<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; ;<br/>Query OK, 0 rows affected (0.03 sec)<br/><br/>mysql&gt; INSERT INTO vote VALUES(null,&#039;你是从哪里了解到本站的?&#039;,1,default);<br/>ERROR 1406 (22001): Data too long for column &#039;vote_title&#039; at row 1//TNND,一样的字符插入中文也有错?疑问中.....<br/>mysql&gt; INSERT INTO vote VALUES(null,&#039;bu shi ba da ge&#039;,1,default);//插入英文无错....<br/>Query OK, 1 row affected (0.00 sec)<br/><br/>mysql&gt;<br/><br/>代码二:<br/><br/>mysql&gt; drop table vote;<br/>Query OK, 0 rows affected (0.00 sec)<br/><br/>mysql&gt; set names gb2312;//设置数据库字符集为gb2312<br/>Query OK, 0 rows affected (0.00 sec)<br/><br/>mysql&gt; CREATE TABLE vote<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; (<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vote_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vote_title varchar(100) not null,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vc_id int not null,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; votes_sum int not null default 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; )ENGINE=MyISAM DEFAULT CHARSET=gb2312<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; ;<br/>Query OK, 0 rows affected (0.03 sec)<br/><br/>mysql&gt; INSERT INTO vote VALUES(null,&#039;你是从哪里了解到本站的?&#039;,1,default);<br/>Query OK, 1 row affected (0.00 sec)//gb2312不亏是专门为中文制定的标准啊..我喜欢不过不国际化<br/><br/>mysql&gt; select * from vote;<br/>+---------+-------------------------+-------+-----------+<br/>&#124; vote_id &#124; vote_title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124; vc_id &#124; votes_sum &#124;<br/>+---------+-------------------------+-------+-----------+<br/>&#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 &#124; 你是从哪里了解到本站的? &#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 &#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &#124;<br/>+---------+-------------------------+-------+-----------+<br/>1 row in set (0.00 sec)<br/><br/>mysql&gt; set names utf8;//设定字符集编码为utf8<br/>Query OK, 0 rows affected (0.00 sec)<br/><br/>mysql&gt; select * from vote;//效果出来了^_^!<br/>+---------+------------------------------------+-------+-----------+<br/>&#124; vote_id &#124; vote_title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; vc_id &#124; votes_sum &#124;<br/>+---------+------------------------------------+-------+-----------+<br/>&#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 &#124; 浣犳槸浠庡摢閲屼簡瑙ｅ埌鏈 珯鐨? &#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 &#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &#124;<br/>+---------+------------------------------------+-------+-----------+<br/>1 row in set (0.00 sec)<br/><br/>解决方案:<br/><br/>以前在internet上看到一篇文章说的是mysql编码问题!<br/>utf与gb2312等,问macleo那老小子这两种编程有什么不同,是不是utf8更加的国际化,<br/>回答是:&#039;聪明&#039;;<br/>后来我就去internet 上找了一篇文章,我也转载到我的baidu空间中了,相信经常来的朋友一定看过就篇文章!<br/><a href="http://hi.baidu.com/zhaofei299/blog/item/e290ff99b9b889096f068c0b.html" target="_blank">http://hi.baidu.com/zhaofei299/blog/item/e290ff99b9b889096f068c0b.html</a><br/>最近在我看了php编程标准:<a href="http://www.phpe.net/html/php_coding_standard_cn.html(" target="_blank">http://www.phpe.net/html/php_coding_standard_cn.html(</a>好东西)<br/>后我决定要修改以后的不好的地方,追求标准国际化,于是从最近开始我就使用utf8来编写我的程序，以前我是用默认的gb2312的，看了utf8后有点不爽,经过几天下来，一个字爽,代码让人一看就有点像高手(虽然我很菜^_^)<br/>前几天没用到数据库也没在意,以前看过那篇set names XXX，认为在连接数据库的时候加个<br/>mysql_query(&#039;SET NAMES xxx&#039;)不就行了,就昨天我按我设想开始了对数据库的操作，谁知道可怕的事情发生了,显示乱码就真让人不爽，想到PHPer 第4期中有对编码的介绍<a href="http://hi.baidu.com/zhaofei299/blog/item/daa734f0bef131ada50f52cd.html" target="_blank">http://hi.baidu.com/zhaofei299/blog/item/daa734f0bef131ada50f52cd.html</a><br/>于是header(&#039;conten-type:text/html;charset=utf-8&#039;);当时我嘴上一笑应该搞定了吧，运行后没想到还是乱码，我当时行不爽，在网上搜了半天,想到哦，有可能是建表的时候没有使用utf编码插入，显示的时候用utf8就出问题了，使用drop table XXX后，set names utf8<br/>然后建表，<br/>使用mysql&gt; INSERT INTO vote VALUES(null,&#039;你是从哪里了解到本站的?&#039;,1,default);<br/>插入数据时出错:ERROR 1406 (22001): Data too long for column &#039;vote_title&#039; at row 1<br/>不是吧，varchar(100)还长??<br/>使用mysql&gt; INSERT INTO vote VALUES(null,&#039;11111111111sdgsdg1111?&#039;,1,default);<br/>成功了，我当时打击不小!<br/>方案也就是说set names xxx一定要在插入中文数据后使用,否则报错.(建表后要加default charset utf8)<br/>对了,在php中对数据库进行操作的时候一定用上set names utf8哦，要不然会出错的<br/>最好在每个php页面之前加上header(&#039;conten-type:text/html;charset=utf-8&#039;)<br/><br/>使用utf8字符集注意事项:<br/><br/>建立新数据库时CREATE TABLE xxx DEFAULT CHARSET=UTF8;//这样所有的该数据库下所有的表的字符集都为utf8,或在建立新数据库时设定字符集<br/><br/>CREATE TABLE xxx<br/>(<br/>id int not null auto_increment primary key,<br/>name varchar(100),<br/>............<br/>)default charset=utf8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设定单个表的字符集为utf8<br/><br/><br/><br/><br/><br/><br/>set name utf8在命令提示符中与php页面不同!<br/><br/>在mysql的命令提示符下使用<br/><br/>set names utf8插入中文会报错:<br/><br/>ERROR 1406 (22001): Data too long for column &#039;vote_title&#039; at row 1<br/><br/>在php中对mysql进行操作,<br/><br/>使用mysql_query(&#039;SET NAMES UTF8&#039;)插入中文成功!<br/><br/>&lt;?php<br/>header(&#039;content-type:text/html;charset=utf-8&#039;);<br/>$link=mysql_connect(&#039;localhost&#039;,&#039;root&#039;,123456);<br/>mysql_select_db(&#039;mydb&#039;);<br/>mysql_query(&#039;set names utf8&#039;);<br/>$sql=&quot;SELECT * FROM &quot;;<br/>$sql1=&quot;INSERT INTO baidu VALUES(&#039;大哥帮帮忙!&#039;)&quot;;<br/>$result1=mysql_query($sql1,$link) or die(&#039;Error:&#039;.mysql_error());<br/>$result=mysql_query($sql,$link);<br/>while ($re_arr=mysql_fetch_assoc($result))<br/>print_r($re_arr);<br/>?&gt;<br/><br/><br/><br/>总结:<br/><br/>总之在建立数据库或数据表后面要加上default charset=utf8<br/><br/>插入中文数据时最好不要在命令提示符中插入,有人会问输入命令set names utf8不就行了<br/><br/>哥们你试下,set names utf8后,插入中文数据会报错的!<br/><br/>不用set names utf8, 插入时使用的是msyql的默认字符集(gb2312) ，在php页面中<br/><br/>mysql_query(&#039;SET NAMES UTF8&#039;)会出现乱码的!<br/><br/>mysql在安装的时候不知道你设定默认字符集的是哪种!<br/><br/>至于mysql命今提示符中&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set names utf8(表加了default charset=utf8);后报错问题我还是想不透!!!一样的字符集为什么插入就会出错呢，还请高手指点!<br/><br/>Tags - <a href="http://www.dzhope.com/tags/utf8/" rel="tag">utf8</a> , <a href="http://www.dzhope.com/tags/utf-8/" rel="tag">utf-8</a> , <a href="http://www.dzhope.com/tags/utf%25EF%25BC%258D8/" rel="tag">utf－8</a> , <a href="http://www.dzhope.com/tags/mysq/" rel="tag">mysq</a> , <a href="http://www.dzhope.com/tags/%25E7%25BC%2596%25E7%25A0%2581/" rel="tag">编码</a> , <a href="http://www.dzhope.com/tags/%25E5%25AD%2597%25E7%25AC%25A6%25E9%259B%2586/" rel="tag">字符集</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] Mysql数据库UTF－8编码问题汇总]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>