<?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>&#34;刘华栋&#34;的个人网站 &#187; mysql</title>
	<atom:link href="http://www.liuhuadong.com/archives/category/php/mysql/feed" rel="self" type="application/rss+xml" />
	<link>http://www.liuhuadong.com</link>
	<description>我的日子依旧很简单，梦想一直没改变</description>
	<lastBuildDate>Thu, 29 Jul 2010 22:36:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Mysql编码从latin1到utf8的转换</title>
		<link>http://www.liuhuadong.com/archives/114/index.html</link>
		<comments>http://www.liuhuadong.com/archives/114/index.html#comments</comments>
		<pubDate>Tue, 16 Oct 2007 04:37:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[bbs]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[编码]]></category>

		<guid isPermaLink="false">http://www.liuhuadong.com/archives/114/index.html</guid>
		<description><![CDATA[前一段时间有人要xctc旧bbs的数据库，我都不好意思给，原因是数据库编码问题我一直没有解决，给了别人打开肯定是一堆垃圾乱码。今天无论如何我是要解决这个问题，搞不定这个数据库誓不为人。 xctc这个数据库不像一般的数据库，编码中途经过很多次转换，采用的转换方法不全相通，而且mysql版本也不同，所以有一些表正常有一些表不正常，转来转去，总会出现一些乱码错误。当n年后的今天我重新打开这个数据库时，已经忘记了它的字符集，忘了它存在的版本，甚至忘了其中各表的含义。我的环境是mysql5.0.45，xctc数据库创建的时候应该是在 2001年，那时候的mysql最多算3.x，经过了4.x后的mysql5，不知道还有什么兼容性问题没（其实毫无疑问，大大的有）。首先把数据库加入到mysql5中，已经忘了当时的vbb的版本是多少，只好找个最新版本升级之，中间出错。分析表、修复表、优化表，再升级，升级成功，只是内容全是乱码。网上找很多资料，转换数据库字符集了很多次，都没有解决办法。最后根据对vbb的理解加上n多资料，终于解决这个问题。 字符集问题，导入数据库后phpmyadmin直接显示了数据库字符集为：latin1。这就好办了，把latin1转换为utf8就可以了。转的时候由于mysql版本的差异，所以导出时候需要加入 &#8220;&#8211;compatible=mysql40&#8243;参数。 D:\mysql5\bin&#62;mysqldump -uroot -p --quick --compatible=mysql40 --default-character-set=latin1 --extended-insert=FALSE xctc &#62; d:/xctc.sql 导出后，在phpmyadmin中新建一个数据库xctc2，字符编码设为utf8-general-ci。然后执行下列语句： mysql -uroot -p --default-character-set=utf8 xctc2 &#60; d:/xctc.sql 一般数据库导入不会有问题，但是xctc这个数据库中间转换太多，会有错误。错在word表，里面所有字段都是乱码，导入时会认为乱码部分为空，即所有字段内容都是空，这样就会出现记录重复。好在vbb对word表要求不高，只是一个关键词的表。解决办法是清空之，回头升级好了重建关键词即可。这样，数据库xctc2就是一个完整的utf8字符集的数据了。上传，修复，升级，重建，恢复模板。一切搞定。 新的数据已经在xctcbbs.cn上了(注：空间已挂，数据丢失) 。]]></description>
			<content:encoded><![CDATA[<p>前一段时间有人要xctc旧bbs的数据库，我都不好意思给，原因是数据库编码问题我一直没有解决，给了别人打开肯定是一堆垃圾乱码。今天无论如何我是要解决这个问题，搞不定这个数据库誓不为人。</p>
<p>xctc这个数据库不像一般的数据库，编码中途经过很多次转换，采用的转换方法不全相通，而且mysql版本也不同，所以有一些表正常有一些表不正常，转来转去，总会出现一些乱码错误。当n年后的今天我重新打开这个数据库时，已经忘记了它的字符集，忘了它存在的版本，甚至忘了其中各表的含义。我的环境是mysql5.0.45，xctc数据库创建的时候应该是在 2001年，那时候的mysql最多算3.x，经过了4.x后的mysql5，不知道还有什么兼容性问题没（其实毫无疑问，大大的有）。首先把数据库加入到mysql5中，已经忘了当时的vbb的版本是多少，只好找个最新版本升级之，中间出错。分析表、修复表、优化表，再升级，升级成功，只是内容全是乱码。网上找很多资料，转换数据库字符集了很多次，都没有解决办法。最后根据对vbb的理解加上n多资料，终于解决这个问题。</p>
<p>字符集问题，导入数据库后phpmyadmin直接显示了数据库字符集为：latin1。这就好办了，把latin1转换为utf8就可以了。转的时候由于mysql版本的差异，所以导出时候需要加入 &ldquo;&ndash;compatible=mysql40&Prime;参数。</p>
<p><code>D:\mysql5\bin&gt;mysqldump -uroot -p --quick --compatible=mysql40 --default-character-set=latin1 --extended-insert=FALSE xctc &gt; d:/xctc.sql</code></p>
<p>导出后，在phpmyadmin中新建一个数据库xctc2，字符编码设为utf8-general-ci。然后执行下列语句：</p>
<p><code>mysql -uroot -p --default-character-set=utf8 xctc2 &lt; d:/xctc.sql </code></p>
<p>一般数据库导入不会有问题，但是xctc这个数据库中间转换太多，会有错误。错在word表，里面所有字段都是乱码，导入时会认为乱码部分为空，即所有字段内容都是空，这样就会出现记录重复。好在vbb对word表要求不高，只是一个关键词的表。解决办法是清空之，回头升级好了重建关键词即可。这样，数据库xctc2就是一个完整的utf8字符集的数据了。上传，修复，升级，重建，恢复模板。一切搞定。</p>
<p>新的数据已经在xctcbbs.cn上了(注：空间已挂，数据丢失) 。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liuhuadong.com/archives/114/index.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
