<?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>Shiyu Tang的财经博客 &#187; MySQL</title>
	<atom:link href="http://www.shiyutang.com/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shiyutang.com</link>
	<description>有关我的投资、生活以及爱好</description>
	<lastBuildDate>Sun, 11 Dec 2011 07:41:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>在Perl中使用UTF-8编码查询MySQL数据库</title>
		<link>http://www.shiyutang.com/2008/06/18/%e5%9c%a8perl%e4%b8%ad%e4%bd%bf%e7%94%a8utf-8%e7%bc%96%e7%a0%81%e6%9f%a5%e8%af%a2mysql%e6%95%b0%e6%8d%ae%e5%ba%93/</link>
		<comments>http://www.shiyutang.com/2008/06/18/%e5%9c%a8perl%e4%b8%ad%e4%bd%bf%e7%94%a8utf-8%e7%bc%96%e7%a0%81%e6%9f%a5%e8%af%a2mysql%e6%95%b0%e6%8d%ae%e5%ba%93/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 04:45:06 +0000</pubDate>
		<dc:creator>Shiyu Tang</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[UTF-8]]></category>

		<guid isPermaLink="false">http://www.shiyutang.com/2008/06/18/%e5%9c%a8perl%e4%b8%ad%e4%bd%bf%e7%94%a8utf-8%e7%bc%96%e7%a0%81%e6%9f%a5%e8%af%a2mysql%e6%95%b0%e6%8d%ae%e5%ba%93/</guid>
		<description><![CDATA[Perl里提供了DBI这个模块来连接MySQL数据库，使得查询MySQL数据库特别方便。不过，很多人发现，如果MySQL数据库的某些表中使用了UTF-8编码，那查询的结果就成了“？”，为此不得不采用GB2312这样的编码。实际上，这个问题解决起来也很简单，就是在连接字段里面加上{&#8216;mysql_enable_utf8&#8242;=&#62;1}即可。例如下面的一小段示范代码： use DBI; use warnings; use strict; use utf8; use bytes; my $dbh = DBI-&#62;connect("DBI:mysql:database=yourdatabase;host=yourhost", "username", "password", {'RaiseError'=&#62;1, 'mysql_enable_utf8'=&#62;1}) &#124;&#124; die "Cannot connect to database:".DBI-&#62;errstr; my $sth=$dbh-&#62;prepare('SELECT * FROM onetable'); $sth-&#62;execute()&#124;&#124;die "An error occurs while querying: ".$sth-&#62;errstr; while(my @data=$sth-&#62;fetchrow_array()){ for my $i(0..$#data) { print "$data[$i]\\t"; } print "\\n"; } $dbh-&#62;disconnect();]]></description>
			<content:encoded><![CDATA[<p>Perl里提供了DBI这个模块来连接MySQL数据库，使得查询MySQL数据库特别方便。不过，很多人发现，如果MySQL数据库的某些表中使用了UTF-8编码，那查询的结果就成了“？”，为此不得不采用GB2312这样的编码。实际上，这个问题解决起来也很简单，就是在连接字段里面加上{&#8216;mysql_enable_utf8&#8242;=&gt;1}即可。例如下面的一小段示范代码：</p>
<pre>
use DBI;
use warnings;
use strict;
use utf8;
use bytes;

my $dbh = DBI-&gt;connect("DBI:mysql:database=yourdatabase;host=yourhost",
			"username", "password",
			{'RaiseError'=&gt;1, 'mysql_enable_utf8'=&gt;1})
			|| die "Cannot connect to database:".DBI-&gt;errstr;
my $sth=$dbh-&gt;prepare('SELECT * FROM onetable');
$sth-&gt;execute()||die "An error occurs while querying: ".$sth-&gt;errstr;
while(my @data=$sth-&gt;fetchrow_array()){
	for my $i(0..$#data) {
		print "$data[$i]\\t";
	}
	print "\\n";
}
$dbh-&gt;disconnect();</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.shiyutang.com/2008/06/18/%e5%9c%a8perl%e4%b8%ad%e4%bd%bf%e7%94%a8utf-8%e7%bc%96%e7%a0%81%e6%9f%a5%e8%af%a2mysql%e6%95%b0%e6%8d%ae%e5%ba%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

