<?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>delab &#187; Mysql</title>
	<atom:link href="http://de-lab.com/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://de-lab.com</link>
	<description>xhtml CSS SEO CMS PHP など Webデザイン WEBサイト構築の話題</description>
	<lastBuildDate>Wed, 05 Oct 2011 23:41:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>MySQL4.1になると文字化けが発生する件</title>
		<link>http://de-lab.com/article/mysql41/</link>
		<comments>http://de-lab.com/article/mysql41/#comments</comments>
		<pubDate>Wed, 27 Jun 2007 06:52:57 +0000</pubDate>
		<dc:creator>sato</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[Nucleus]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://de-lab.com/blog/wordpress/mysql41/</guid>
		<description><![CDATA[Mysql4.1以降は、PHPとの接続時に文字コードの自動変換機能の為文字化けする場合があります。 WordPressとNucleusで文字化けが発生した際にコアファイルを修正します。 Mysql4.1以上の文字コードの [...]]]></description>
			<content:encoded><![CDATA[<div class="disc">
<p>Mysql4.1以降は、PHPとの接続時に文字コードの自動変換機能の為文字化けする場合があります。</p>
<p>WordPressとNucleusで文字化けが発生した際にコアファイルを修正します。</p>
</div>
<p><span id="more-16"></span></p>
<h2 id="toc-mysql4-1">Mysql4.1以上の文字コードの設定</h2>
<p>最近仕事でもCMSツールを使ってサイト構築することがあります。</p>
<p>会社で使っているサーバーがMysql4.1なのですが、Mysql4.1以上だと、普通にインストールするとデーターベース側が文字化けするという問題が出てきます。</p>
<p>なぜなら、Mysql4.1以降は、PHPとの接続時に文字コードの自動変換機能が働くので、サーバー側の文字コードを勝手に変換してしまうんです。</p>
<p>サーバー側に文字コードが指定されていない場合、「laten1」などで出力されてしまうので、コアファイルを書き換えてエンコーディングを発行します。</p>
<h3 id="toc-nucleus-nucleus3-3">Nucleusの設定 (nucleus3.3)</h3>
<p class="code">nucleus/lib/globalfunctions.php  &#8211; 488行目に次の1行を挿入</p>
<pre name="code" class="php">
$rtn = mysql_query("SET NAMES utf8" , $MYSQL_CONN);
</pre>
<p class="code">nucleus/lib/globalfunctions.php</p>
<pre name="code" class="php">
function sql_connect() {
	global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE, $MYSQL_CONN;
	$MYSQL_CONN = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD) or startUpError('Could not connect to MySQL database.', 'Connect Error');
	mysql_select_db($MYSQL_DATABASE) or startUpError('Could not select database: ' . mysql_error() . '', 'Connect Error');
       $rtn = mysql_query("SET NAMES utf8" , $MYSQL_CONN);
 	return $MYSQL_CONN;
}
</pre>
<p>07/09/14 訂正 &#8211; 正常動作確認しました。</span></p>
<h3 id="toc-wordpress-wordpress-me2-2-3">WordPressの設定 (WordPress ME2.2.3)</h3>
<div class="info">
<p>07/10/26 修正 &#8211; 2.1.3から最新版に修正しました。</p>
</div>
<p class="code">wp-includes/wp-db.php &#8211; 78行目に次の1行を挿入</p>
<pre name="code" class="php">
mysql_query("SET NAMES utf8", $this->dbh);
</pre>
<p class="code">wp-includes/wp-db.php</p>
<pre name="code" class="php">
function wpdb($dbuser, $dbpassword, $dbname, $dbhost) {
	return $this->__construct($dbuser, $dbpassword, $dbname, $dbhost);
}
function __construct($dbuser, $dbpassword, $dbname, $dbhost) {
	register_shutdown_function(array(&#038;$this, "__destruct"));
	/* .........略     */
	mysql_query("SET NAMES utf8",$this-&gt;dbh);
	$this->select($dbname);
	}</pre>
<p>これで文字化けが解消されました。</p>
<p>文字コードがUTF-8以外の場合は、ujis,eucに書き換えて下さい。</p>
<img src="http://de-lab.com/?ak_action=api_record_view&id=16&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://de-lab.com/article/mysql41/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

