<?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://blog.linym.net/archives/tag/%e7%b7%a8%e7%a2%bc/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.linym.net</link>
	<description>我的學習心得、筆記</description>
	<lastBuildDate>Fri, 09 Dec 2011 12:33:34 +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>CodeIgniter 設定 MySQL 編碼</title>
		<link>http://blog.linym.net/archives/212</link>
		<comments>http://blog.linym.net/archives/212#comments</comments>
		<pubDate>Sat, 22 Dec 2007 15:21:51 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[編碼]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/212</guid>
		<description><![CDATA[※ CodeIgniter 1.6 已釋出，不需再做這篇的修正了哦！ 先前有提到過 CodeIgniter 這個 PHP Framework，也用它做了幾個 case，當然開發速度不能說快上多少，但確實讓程式碼變得整齊優雅許多。 使用 CI 目前遇到第一個問題是存取 MySQL 資料的問題，在 MySQL 4.1 以後採用了多層式編碼設定，簡單說就是不管是資料庫、資料表、欄位或是 Client 連線階段，都可以分別設定編碼，所以即使 server 都改成了 utf8，PHP 到 MySQL Server 的這個 connection 卻還是預設的(latin1)，許多亂碼就是這樣造成的，應該已經有不少人知道解決方法，就是先送出一個改變編碼的查詢：SET NAMES &#39;charset&#39;。 然而目前 CodeIgniter 並沒有這樣的設計，所以只好自行改 code 囉！ Step1：修改 system/application/config/database.php 增加一項：$db[&#39;default&#39;][&#39;charset&#39;] = &#34;utf8&#34;; Step2：修改 system/database/DB_driver.php 在 32 行之後的宣告增加：var $charset = &#39;&#39;; 接著 96 行的陣列增加：&#39;charset&#39; => &#39;&#39;, Step3：修改 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>※ CodeIgniter 1.6 已釋出，不需再做這篇的修正了哦！</strong></p>
<p>先前有<a href="http://blog.linym.net/archives/162">提到</a>過 <a href="http://codeigniter.com/" target="_blank">CodeIgniter</a> 這個 PHP Framework，也用它做了幾個 case，當然開發速度不能說快上多少，但確實讓程式碼變得整齊優雅許多。</p>
<p>使用 CI 目前遇到第一個問題是存取 MySQL 資料的問題，在 MySQL 4.1 以後採用了多層式編碼設定，簡單說就是不管是資料庫、資料表、欄位或是 Client 連線階段，都可以分別設定編碼，所以即使 server 都改成了 utf8，PHP 到 MySQL Server 的這個 connection 卻還是預設的(latin1)，許多亂碼就是這樣造成的，應該已經有不少人知道解決方法，就是先送出一個改變編碼的查詢：SET NAMES &#39;charset&#39;。<br />
然而目前 CodeIgniter 並沒有這樣的設計，所以只好自行改 code 囉！</p>
<p><strong>Step1：修改 system/application/config/database.php</strong><br />
增加一項：$db[&#39;default&#39;][&#39;charset&#39;]  = &quot;utf8&quot;;</p>
<p><strong>Step2：修改 system/database/DB_driver.php</strong><br />
在 32 行之後的宣告增加：var $charset        = &#39;&#39;;<br />
接著 96 行的陣列增加：&#39;charset&#39;	=> &#39;&#39;,</p>
<p><strong>Step3：修改 system/database/drivers/mysql/mysql_driver.php</strong><br />
74 行 return 前加入：</p>
<pre title="code" class="php">

if (!empty($this-&gt;charset))
{
    @mysql_query(&quot;SET NAMES $this-&gt;charset&quot;);
}
</pre>
<p>這樣就 ok 了，如果使用 mysqli 請如法炮製。另外如果主機環境符合，可使用 PHP 內建函式來設定：</p>
<pre title="code" class="php">

// PHP &gt;= 5.2.3，MySQL &gt;= 5.0.7 for mysql
@mysql_set_charset($this-&gt;charset, $this-&gt;conn_id);
// PHP &gt;= 5.0.5，MySQL &gt;= 5.0.6 for mysqli
@mysqli_set_charset($this-&gt;conn_id, $this-&gt;charset);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/212/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>IE 網頁編碼判斷錯誤</title>
		<link>http://blog.linym.net/archives/59</link>
		<comments>http://blog.linym.net/archives/59#comments</comments>
		<pubDate>Sat, 14 Jan 2006 12:43:35 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[網頁設計]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[亂碼]]></category>
		<category><![CDATA[編碼]]></category>

		<guid isPermaLink="false">http://lym.fyman.idv.tw/blog/archives/59</guid>
		<description><![CDATA[當網頁寫出來用 IE 瀏覽時，卻發現網頁沒辦法自動選擇正確的編碼，都要重新整理或手動選擇編碼才會正常。 請檢查您的 HTML 原始碼，看 TITLE 是否在指定編碼的 MATA 之上，如果是的話，請把 MATA 移到 TITLE 之前，這樣就可以解決 IE 誤判的情形了，正確應該如下： &#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; /&#62; &#60;title&#62;網站標題&#60;/title&#62;]]></description>
			<content:encoded><![CDATA[<p>當網頁寫出來用 IE 瀏覽時，卻發現網頁沒辦法自動選擇正確的編碼，都要重新整理或手動選擇編碼才會正常。<br />
請檢查您的 HTML 原始碼，看 TITLE 是否在指定編碼的 MATA 之上，如果是的話，請把 MATA 移到 TITLE 之前，這樣就可以解決 IE 誤判的情形了，正確應該如下：</p>
<pre title="code" class="html">

&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;網站標題&lt;/title&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/59/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

