<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>老韩 &#187; MySQL</title>
	<atom:link href="http://www.handaoliang.com/article_category/mysql/feed" rel="self" type="application/rss+xml" />
	<link>http://www.handaoliang.com</link>
	<description>沉迷于玩技术是病，被技术玩得沉迷是命。</description>
	<lastBuildDate>Mon, 12 Mar 2012 13:50:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Unix+Apache+PHP+Mysql环境下GB2312转UTF8的总结</title>
		<link>http://www.handaoliang.com/article_5.html</link>
		<comments>http://www.handaoliang.com/article_5.html#comments</comments>
		<pubDate>Sun, 18 May 2008 12:24:30 +0000</pubDate>
		<dc:creator>hdl</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[编码]]></category>

		<guid isPermaLink="false">http://www.handaoliang.com/article_5.html</guid>
		<description><![CDATA[　　注：很久很久以前的文章，存档在这里。
　　有时候，在明明程序没有任何错误的情况下，经常会碰到插数据库不成功的问题，此时就要考虑是不是编码的问题了，比如我就曾经遇到这样的问题，最终一路查下是没有将GB2312编码的内容转成UTF-8所致，当时是因为 mysql的一些字段依然用的是的是latin1字符集（latin1是mysql默认的排序方式），用phpmyadmin转utf8编码的话还是很方便，只要选“操作”项，在“整理”类里选择utf8_general_ci，就可以转成功（PS下：UTF-8默认是utf8_spanish_ci，没 有utf8_gbk_ci，这里选择utf8_general_ci是为了适应汉字编码的需要！）！这样可以把表转成UTF-8字符集存储格式！
<span class="readmore"><a href="http://www.handaoliang.com/article_5.html" title="Unix+Apache+PHP+Mysql环境下GB2312转UTF8的总结" target="_blank">阅读全文——共1146字</a></span>]]></description>
			<content:encoded><![CDATA[<p>　　注：很久很久以前的文章，存档在这里。</p>
<p>　　有时候，在明明程序没有任何错误的情况下，经常会碰到插数据库不成功的问题，此时就要考虑是不是编码的问题了，比如我就曾经遇到这样的问题，最终一路查下是没有将GB2312编码的内容转成UTF-8所致，当时是因为 mysql的一些字段依然用的是的是latin1字符集（latin1是mysql默认的排序方式），用phpmyadmin转utf8编码的话还是很方便，只要选“操作”项，在“整理”类里选择utf8_general_ci，就可以转成功（PS下：UTF-8默认是utf8_spanish_ci，没 有utf8_gbk_ci，这里选择utf8_general_ci是为了适应汉字编码的需要！）！这样可以把表转成UTF-8字符集存储格式！<br />
　　这还没有完全成功，我就是在这上面花费了很多时间来研究，因为光把表转成utf8还不成，还要把char及text格式的字段转成utf8字符集存储！这里我是手工写代码批量转的，因为这样比较快，21世纪最重要的是什么？人才以及效率嘛，呵呵。<br />
　　以下是sql语句：<br />
　　把整个表转成utf8存储：</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)">
<li class="hl-firstline"><span style="color: Green;">ALTER</span><span style="color: Gray;"> </span><span style="color: Green;">TABLE</span><span style="color: Gray;"> </span><span style="color: #8b0000;">`</span><span style="color: Blue;">table_name</span><span style="color: #8b0000;">`</span><span style="color: Gray;"> </span><span style="color: Green;">DEFAULT</span><span style="color: Gray;"> </span><span style="color: Green;">CHARACTER</span><span style="color: Gray;"> </span><span style="color: Green;">SET</span><span style="color: Gray;"> </span><span style="color: Blue;">utf8</span><span style="color: Gray;"> </span><span style="color: Green;">COLLATE</span><span style="color: Gray;"> </span><span style="color: Blue;">utf8_general_ci</span><span style="color: Gray;">;</span></li>
</ol>
</div>
<p>　　把一个字段转成utf8存储：</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)">
<li class="hl-firstline"><span style="color: Green;">ALTER</span><span style="color: Gray;"> </span><span style="color: Green;">TABLE</span><span style="color: Gray;"> </span><span style="color: #8b0000;">`</span><span style="color: Blue;">Field_name</span><span style="color: #8b0000;">`</span><span style="color: Gray;"> </span><span style="color: Blue;">CHANGE</span><span style="color: Gray;"> </span><span style="color: #8b0000;">`</span><span style="color: Blue;">invite</span><span style="color: #8b0000;">`</span><span style="color: Gray;"> </span><span style="color: #8b0000;">`</span><span style="color: Blue;">invite</span><span style="color: #8b0000;">`</span><span style="color: Gray;"> </span><span style="color: Blue;">TEXT</span><span style="color: Gray;"> </span><span style="color: Green;">CHARACTER</span><span style="color: Gray;"> </span><span style="color: Green;">SET</span><span style="color: Gray;"> </span><span style="color: Blue;">utf8</span><span style="color: Gray;"> </span><span style="color: Blue;">COLLATEutf8_general_ci</span><span style="color: Gray;"> </span><span style="color: Green;">DEFAULT</span><span style="color: Gray;"> </span><span style="color: Green;">NULL</span><span style="color: Gray;">;</span></li>
</ol>
</div>
<p>这就完了吗？别急，还没完呢，除了数据库的字符集，还有程序呀。在进行数据存储之前，有必要进行转码，当然，我想如果您既然都已经打算把你的数据都转成 utf8，那么也不会吝惜这样一点时间把程序也转成utf8吧？呵呵，从utf8页面post过来的数据不用转，直接用就可以了，如果你的form提交页 面还是gb2312或者gbk，则有必要convert一下，PHP里的iconv函数非常好用，我的页面都是用PHP写的脚本转的！OK,转完了，还 有，在在插数据库和取数据库之前必须执行如下sql语句：</p>
<p>SET NAMES ‘utf8′</p>
<p>这一句话的意思相当于下面的三句指令：<br />
SET character_set_client = utf8;<br />
SET character_set_results = utf8;<br />
SET character_set_connection = utf8;</p>
<p>这样就保证了存取mysql数据库时编码的一至性，不会导致有一些中文字符转不出来，或者丢字节！<br />
mysql存取前需要加的PHP代码(mysql_select_db前加也行？没试！)：<br />
mysql_query(”SET NAMES ‘utf8′”);</p>
]]></content:encoded>
			<wfw:commentRss>http://www.handaoliang.com/article_5.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

