2009年3月27日

Word發佈文章

很無聊的在看文章
順便玩一下word2007
發現了word可以直接發佈blogger文章
優點是
可以快速發佈
缺點是
要一直輸入帳號密碼
還有無法修改原有的文章
(至少我一直無法修改成功)

2009年3月17日

MySQL和php採用UTF8的詳細方法

1. PHP 程式檔本身的編碼格式是 utf8
2. MySQL 資料表的欄位的校對屬性設為 utf8_unicode_ci,就是欄位加上 collate utf8_unicode_ci
3. PHP 在與 MySQL 溝通時,要先送出 SET NAMES utf8
4. PHP 在輸出畫面前,要先送出 header('Content-type: text/html; charset=utf-8');

可參考網頁:
http://www.vixual.net/blog/archives/315
http://www.vixual.net/blog/archives/310

mysql 裡 utf8_general_ci 跟 utf8_unicode_ci 連線校對的差異

在 phpMyAdmin 裡面的說明看起來通通一樣:

utf8_general_ci 統一碼 (Unicode) (多語言), 大小寫不相符
utf8_unicode_ci 統一碼 (Unicode) (多語言), 大小寫不相符

mysql reference manual 翻譯:

utf8_general_ci 在轉換時速度比較快
utf8_unicode_ci 在轉換時比較精準

轉換?怎麼講呢?
簡單說就是當資料要從一個編碼換成另外一個編碼時,
mysql 要在兩個 codepage 裡面找出來相對應的字元位置在哪裡。
對 utf8_general_ci 來說,來源 codepage 裡面的一個字元只能對應到目標 codepage 裡面的一個字元,
而 utf8_unicode_ci 則可以把來源 codepage 裡的一個字元對應到目標 codepage 裡的多個字元(或反過來)。
例如德文裡的 ß 要轉換成英文的時候如果是用 utf8_unicode_ci 轉換會變成正確的 ss ,
但是如果用 utf8_general_ci 的話則會變成單一的 s 而已。

所以如果可以的話請盡量用 utf8_unicode_ci 而不要用 utf8_general_ci ,
雖然對 multibyte 字元來說這兩個都沒差,
但是 utf8 的網頁誰也不知道哪天會不會有這種字元出現在你的網頁上,
所以如果設成 utf8_unicode_ci 你就不需要擔心貼上去之後資料在轉換間遺失了。

文章來源:http://origin2.pixnet.net/blog/post/1244682