<?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; 乱码</title>
	<atom:link href="http://www.duduyu.net/tag/%e4%b9%b1%e7%a0%81/feed" rel="self" type="application/rss+xml" />
	<link>http://www.duduyu.net</link>
	<description>嘟嘟鱼的个人博客</description>
	<lastBuildDate>Thu, 15 Dec 2011 07:54:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>wordpress导入乱码问题的解决</title>
		<link>http://www.duduyu.net/garbled-into-wordpress-problems</link>
		<comments>http://www.duduyu.net/garbled-into-wordpress-problems#comments</comments>
		<pubDate>Mon, 20 Jul 2009 03:23:03 +0000</pubDate>
		<dc:creator>嘟嘟鱼</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[乱码]]></category>

		<guid isPermaLink="false">http://www.quickshare.com.cn/?p=11728</guid>
		<description><![CDATA[刚才一个wordpress用户想搬到我们主机，他自己导入后打开是乱码，以为是字符集问题，进数据看一看是utf8_general_ci的，没有问题，数据库里显示中文也正常，但是网页显示就是乱码，我重新导... ]]></description>
			<content:encoded><![CDATA[<p>刚才一个<a href="http://www.quickshare.com.cn/tag/wordpress"  class="alinks_links" onclick="return alinks_click(this);" title="wordpress&#30456;&#20851;&#25991;&#31456;"  rel="external">wordpress</a>用户想搬到我们主机，他自己导入后打开是乱码，以为是字符集问题，进数据看一看是<dfn title="Unicode (多语言), 不区分大小写">utf8_general_ci</dfn>的，没有问题，数据库里显示中文也正常，但是网页显示就是乱码，我重新导出一次再导入问题依旧。后来发现建好数据库后要整理下字符集才行，登陆phpmyadmin，点击“Operations/操作”按钮，在新打开的页面最下面有“Collation:/整理:  ”选项，选择utf8_general_ci 然后点击“go/执行”确认。如果操作成功，页面上会出来：</p>
<blockquote><p>您运行的 SQL 语句已经成功运行了。</p>
<p>SQL 查询:ALTER DATABASE `****` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci</p></blockquote>
<p>设置如图<span id="more-11728"></span></p>
<p><img title="view" src="http://www.kuaixiang.net/wp-content/uploads/2009/07/112332024.jpg" alt="PhpMyAdmin" width="520" height="376" /></p>
<p>进入PhpMyAdmin，选择新数据库，然后点“Import/导入”，选择备份的旧数据库文件，把文件的字符集选择为“utf8”，其他选项默认，然后点击“执行”。如果旧数据库比较大，同时网速比较慢可能要等几分钟，要有耐心。操作成功会出来类似上面的“您运行的 SQL 语句已经成功运行了。 ”的提示的。</p>
<p>至此所有数据库操作完成，但是如果此时登陆新网站查看，汉字会全以”？”显示，还需要进行如下操作：</p>
<p>所谓的乱码问题大部分都出在wp-db.php身上，网上有很多关于这方面的解释和论述，具体解决方法比较简单，只需在53行处加入了如下语句（设置php文件读取和写入mysql时使用utf8字符集）：</p>
<p>$this-&gt;query("SET NAMES 'utf8' ");</p>
<p>有的可能行数不对，就搜索</p>
<pre><code>$this-&gt;dbh = @mysql_connect($dbhost,$dbuser,$dbpassword);
//加上下面這行
$this-&gt;query("SET NAMES 'utf8' ");</code></pre>
<p>至此，问题解决。</p>
<h3  class="related_post_title">您可能也对这些文章感兴趣</h3><ul class="related_post"><li><a href="http://www.duduyu.net/how-to-turn-off-maintenance-mode-wordpress" title="如何开启、关闭wordpress维护模式">如何开启、关闭wordpress维护模式</a></li><li><a href="http://www.duduyu.net/11-improve-wordpressu002639s-speed-and-performance-skills" title="11个提高WordPress速度与性能的技巧">11个提高WordPress速度与性能的技巧</a></li><li><a href="http://www.duduyu.net/wordpress-upload-pictures-do-not-show-that-the-solution" title="wordpress上传图片不显示的解决办法">wordpress上传图片不显示的解决办法</a></li><li><a href="http://www.duduyu.net/baidu-started-to-re-record-the-site" title="百度又开始重新收录本站了">百度又开始重新收录本站了</a></li><li><a href="http://www.duduyu.net/how-to-change-the-interpunction-from-sbccase-to-dbccase-in-wordpress" title="WordPress自动转换中文标点的解决方案">WordPress自动转换中文标点的解决方案</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.duduyu.net/garbled-into-wordpress-problems/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>如何解决MYSQL数据中文乱码问题</title>
		<link>http://www.duduyu.net/mysql-how-to-solve-the-garbage-problem-of-chinese-data</link>
		<comments>http://www.duduyu.net/mysql-how-to-solve-the-garbage-problem-of-chinese-data#comments</comments>
		<pubDate>Sat, 20 Sep 2008 05:44:03 +0000</pubDate>
		<dc:creator>嘟嘟鱼</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[乱码]]></category>

		<guid isPermaLink="false">http://www.quickshare.com.cn/?p=11047</guid>
		<description><![CDATA[最近一台服务器环境升级，mysql从4.0升级到了5.0,乱码问题让人崩溃了…… 下面搜集了一堆方法，其实最简单的还是推荐使用帝国备份王，很好，很强大！ 第一种方法，很精辟的总结： 经常更... ]]></description>
			<content:encoded><![CDATA[<p>最近一台服务器环境升级，mysql从4.0升级到了5.0,乱码问题让人崩溃了……<br />
下面搜集了一堆方法，其实最简单的还是推荐使用<a title="帝国备份王" href="http://www.phome.net/product/Ebak.html" target="_blank">帝国备份王</a>，很好，很强大！<br />
第一种方法，很精辟的总结：</p>
<p>经常更换虚拟主机,而各个服务商的MYSQL版本不同,当导入数据后,总会出现乱码等无法正常显示的问题,查了好多资料,总结出自己的一点技巧:</p>
<div id="show5263" class="postcontent">WINDOWS 下导入应该这样<br />
使用MYSQL的命令<br />
在DOS命令下进入mysql的bin目录下,输入mysql -uroot -p密码 数据库名称&lt;要恢复的数据库, 例如我们要把D盘的一个名称为test.sql的数据库恢复到本地的test2这个数据库,那么就这样: mysql -uroot -p密码 test2以前的国外主机用的Mysql是4.x系列的，感觉还比较好，都无论GBK和UTF-8都没有乱码，没想到新的主机的Mysql是5.0版本的，导入数据后，用Php读出来全是问号，乱码一片，记得我以前也曾经有过一次切换出现乱码的经验，原因肯定是Mysql版本之间的差异问题。</p>
<p>只好查资料，发现了一个解决方法，就是在mysql_connect后面加一句SET NAMES UTF8，即可使得UTF8的数据库消除乱码，对于GBK的数据库则使用SET NAMES GBK，代码如下：</p>
<p>$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);<br />
mysql_query("SET NAMES 'GBK'");</p></div>
<p> </p>
<p>数据库字符集为utf-8</p>
<p>连接语句用这个<br />
mysql_query("SET NAMES 'UTF8'");<br />
mysql_query("SET CHARACTER SET UTF8");<br />
mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");</p>
<p>还有个方法就是,如果你自己的机器的话,可以更改MYSQL字符集,一般在MYSQ4和MYSQL5这两个版本中有效</p>
<p> </p>
<p><span id="more-11047"></span></p>
<hr /> </p>
<p>第二个方法：很不错的解说，可以试一下</p>
<p>mysql乱码处理总结:</p>
<p>       (1)java中处理中文字符正常,在cmd client中显示乱码是字符集的问题.</p>
<p>       (2)字段长度设置够长,但插入中文字符时提示com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column错误是字符集的问题.</p>
<p>       (3)乱码问题归根到底是字符集的问题,那就从字符集设置方面考虑,不外乎下面几个方面:server,client,database,connection,results.</p>
<p>-------------------------解决办法----------------------</p>
<p>(1)修改 my.ini(MySQL Server Instance Configuration 文件)</p>
<p># CLIENT SECTION</p>
<p>[client]</p>
<p>port=3306</p>
<p>[mysql]</p>
<p>default-character-set=gbk</p>
<p># SERVER SECTION</p>
<p>[mysqld]</p>
<p>default-character-set=gbk</p>
<p>(2)修改data目录中相应数据库目录下的db.opt配置文件</p>
<p>default-character-set=gbk<br />
default-collation=gbk_chinese_ci</p>
<p>(3)数据库连接串中指定字符集</p>
<p>URL=jdbc:mysql://yourIP/college?user=root&amp;password=yourPassword&amp;useUnicode=true&amp;characterEncoding=gbk 注:在mysql4.1.0版 要加useUnicode=true&amp;characterEncoding=gbk 如果是5.0版以上的，加不加都是没有关系的！</p>
<p>(4)在创建数据库时指定字符集</p>
<p>create database yourDB CHARACTER SET gbk;</p>
<p>(5)在dos命令上要设置</p>
<p>set names gbk<br />
       好了,经过检查上面四个方面的设置,应该 OK 了!不会出现诸如<br />
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column等问题.</p>
<p> </p>
<p> </p>
<p> </p>
<p>Mysql中文乱码解决<br />
原来常常在群里看到mysql的乱码问题，但是由于本人一直在用oracle和sql server所以没多在乎，昨天用了用mysql结果就遇到了传说中的乱码…..。现在我们来讲讲mysql的乱码问题。首先你进入的你mysql<br />
用show variables查看</p>
<p><img src="http://www.kuaixiang.net/attachments/2008/09/1344025y4.gif" border="0" alt="" /><br />
这里可以查看到你的字符集，character_set_server是服务器编码。现在我们默认的是latin1要改变服务器的编码必须重新启动服务器，我们先用mysqladmin –uroot shutdown关闭服务器,然后mysqld –C GBK启动服务器 –C是character_set_server的一个简写（可以也可以写成mysqld –character_set_server gbk）.这样修改以后我们再进入mysql查看就会显示：<br />
<img src="http://www.kuaixiang.net/attachments/2008/09/1344032op.gif" border="0" alt="" /><br />
这样我们就把服务器和数据库的编码改为了GBK。<br />
现在我们就可以插入中文字符串了，但是为什么有时间还是会显示<br />
Exception in thread "main" com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'name' at row 1<br />
这是因为你只是修改了mysql的服务器的字符编码，并没有修改已经有数据库的编码，这时候你需要手动的把data目录下的数据库中的db.opt中的编码改为<br />
default-character-set=gbk<br />
default-collation=gbk_chinese_ci<br />
这样修改以后你在重启服务器就可以插入中文了。<br />
但是这时候还有个问题就是在你应用程序当中显示的是中文字符，但是在命令窗口还是乱码。<br />
这时候你注意我们上面图中的character_set_client字符还是latin1当然显示的是乱码咯哟。所以你进入mysql客户端程序的时候因该把客户端默认的编码改为gbk才能显示正常。<br />
你可以在mysql里修改，也可以在登陆的时候mysql –uroot –default-character-set=gbk修改<br />
如此以来就解决了中文问题了。<br />
我刚开始的时候在程序中加入了一个characterEncoding变量（下图），但是想来想去都觉得这个变量没什么用，所以后来去掉也能显示正常。<br />
jdbc:mysql://127.0.0.1:3306/ee?characterEncoding=gbk"</p>
<hr /> </p>
<p>第三种方法，说有太复杂了，反到不知道怎么弄了，你试试，也许可以用得上</p>
<p>1.修改/etc/my.cnf文件，改成这样：<br />
[mysqld]<br />
datadir=/var/lib/mysql<br />
socket=/var/lib/mysql/mysql.sock<br />
default-character-set=utf8<br />
[mysql.server]<br />
user=mysql<br />
basedir=/var/lib<br />
[mysqld_safe]<br />
err-log=/var/log/mysqld.log<br />
pid-file=/var/run/mysqld/mysqld.pid<br />
注意：就是加入了一句default-character-set=utf8。<br />
2./etc/init.d/mysqld restart 重新启动mysql；<br />
3.打开phpmyadmin，选择lang为"Chines simplifies(zh-utf-8)",选择"MySQL 连接校对"为"utf8_general_ci "点“显示 MySQL 的运行信息”--“变量”，可以看到：<br />
character set client utf8 utf8<br />
character set connection utf8 utf8<br />
character set database utf8 utf8<br />
character set results utf8 utf8<br />
character set server utf8 utf8<br />
character set system utf8 utf8<br />
collation connection utf8_general_ci utf8_general_ci<br />
collation database utf8_general_ci utf8_general_ci<br />
collation server utf8_general_ci utf8_general_ci<br />
从这里可以看到character全部变成utf8了。<br />
有人要问，为什么都要改成utf8呢？改成GB2312不行吗？<br />
解释如下：<br />
我也不想改成utf8，只是phpmyadmin2.6在mysql4.1的时候只会用utf8，连其他页面的charset也都是utf8，改成gb2312一定会乱码，我们只能凑phpmyadmin了。<br />
只有在mysql3.23的时候，phpmyadmin才会多一个gb2312的页面charset，这时候是正常的。<br />
3.将以前的mysql3的库文件导入mysql4.1的库<br />
有两种情况：<br />
一是从phpmyadmin上导入，这时候你要注意的是在选择库文件的页面左下脚有个“文件的字符集：”，默认是utf8，要改成gb2312，否则导进去乱码；<br />
二是在<a href="http://www.quickshare.com.cn/tag/linux"  class="alinks_links" onclick="return alinks_click(this);" title="linux&#30456;&#20851;&#25991;&#31456;"  rel="external">linux</a>下导入，这时候你需要先在库文件的头部加一行:<br />
SET NAMES 'gb2312'; 注意最后也是;号，别漏了。<br />
然后执行mysql -u用户名 -p密码 xxx.sql &gt; 库名<br />
导入完成以后再用phpmyadmin打开看，里面的中文字就是正确的。<br />
4.从mysql4.1里导出库文件<br />
一.用phpmyadmin导出<br />
导出倒是问题不大，如果phpmyadmin的浏览页面里显示的中文是正常的，那么导出肯定也是正常的<br />
二.在linux上导出<br />
如果用mysqldump导出出现了乱码也没有关系，可以运行iconv来转换一下<br />
iconv -c -f UTF-8 -t GB2312 库文件名 &gt; 新的gb2312的库文件名<br />
综上所述，你要注意：<br />
1。尽量在需要导入的库文件的开头加入SET NAMES 'gb2312';告诉mysql你要导入的是一个gb2312的文件；<br />
2。可能你需要这个：<br />
SET NAMES 'utf8';<br />
在登陆到mysql后用，把character的一些默认参数改到utf8上，有时可以减少一些困扰，不过也不是必须的。<br />
在mysql上使用:<br />
SHOW VARIABLES LIKE 'character_set_%';<br />
用来查看当前的状态。<br />
3.如果出现乱码也不要怕，一是你要注意留存原有的备份，二是用iconv来进行转化。<br />
在正常使用之前注意做导入导出的测试，确保万无一失。<br />
最后加一句：<a href="http://www.quicklinux.org/">www.quicklinux.org</a>原创文章，转载请注明出处。呵呵<br />
邮件：<a href="mailto:support@quicklinux.org">support@quicklinux.org</a><br />
作者: MySQL 发布日期: 2005-12-14<br />
我升级了MYSQL到4.1.2，phpmyadmin用的是2.6.2。数据表里面有中文的字段中文都变成了乱码，导出数据也是乱码。我用以前的2.5.7没有问题，想问一下，应该在phpmyadmin的那个文件里改哪个设置一下才能显示出来的是正常的中文字？<br />
和字符相关的变量中这几个和sql很有关系：<br />
character_set_client<br />
character_set_connection<br />
character_set_results<br />
此外就是数据库中对相应字段设置的charact set，如果没有对字段设置，缺省是table的charact set，table也没有指定则缺省使用database的。<br />
上面3个变量的作用是这样的，client表示客户端发送过来的字符集，results表示发送到客户端的字符集（这两个分开是因为发送过来和发送过去的不一定是同一个客户端），connection则在客户端和数据库起一个连接作用。<br />
具体是这样：比如我在mysql命令行设置client为gbk，connection为utf8，results为gbk，数据库为big5，<br />
当我发送一个insert语句的时候，这个语句作为gbk代码，先转为utf8代码（connection），再转为big5（database）插入数据库。<br />
而运行一个select语句的时候，从数据库得到的结果则相反的过程，由big5转为utf8，再转为gbk，你得到gbk的结果。<br />
因此最主要的是让client和results和你使用的客户端一致。比如你的网页是utf8编码，你就要设置这两个为utf8。<br />
而在mysql命令行的时候，我用的是2000，需要设置为gbk<br />
而我们用的set names XXX，实际上就是同时设置这3个变量为XXX。<br />
在这样的情况下，我们可以把一个数据库中的不同表或不同字段设为不同的字符集，只要上面3个设置正确，就可以在数据库中同时使用不同的字符集。<br />
注意要保证你的数据库中的字符已经使用了正确的字符集，比如如果一开始你设置错误，插入数据后，本身数据的编码就是不正确的，然后即使设置改回来，也不可能得到正确的显示了。</p>
<p>好了，随便弄了下，希望对你有所帮助</p>
<p><script type="text/javascript"></script></p>
<h3  class="related_post_title">您可能也对这些文章感兴趣</h3><ul class="related_post"><li><a href="http://www.duduyu.net/garbled-into-wordpress-problems" title="wordpress导入乱码问题的解决">wordpress导入乱码问题的解决</a></li><li><a href="http://www.duduyu.net/phpmyadmin-how-to-import-large-sql-file" title="phpmyadmin如何导入大的SQL文件">phpmyadmin如何导入大的SQL文件</a></li><li><a href="http://www.duduyu.net/mysql-services-to-address-two-basic-issues" title="解决mysql服务的两个基本问题">解决mysql服务的两个基本问题</a></li><li><a href="http://www.duduyu.net/mysql-beginners-guide" title="MYSQL初学者使用指南">MYSQL初学者使用指南</a></li><li><a href="http://www.duduyu.net/windows-xp-apache-2-2-4-php-5-2-0-mysql-5-0-27-zend-optimizer-3-2-0-environment-configuration" title="Windows XP + Apache 2.2.4 + PHP 5.2.0 + MySQL 5.0.27 + Zend Optimizer 3.2.0环境配置方法">Windows XP + Apache 2.2.4 + PHP 5.2.0 + MySQL 5.0.27 + Zend Optimizer 3.2.0环境配置方法</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.duduyu.net/mysql-how-to-solve-the-garbage-problem-of-chinese-data/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

