Home » 2012 » July (Page 3)

MySQL 的 Unicode 支援程度

MySQL 5.5 之前的版本只支援 Unicode 3.0 (1999 年 9 月發表),但自從 MySQL 5.5 版開始支援 Unicode 5.0 (2006 年 7 月發表),對於常用的 utf8 encoding 就有一些變化要注意...

參考維基百科上對 Unicode 版本的說明:「Unicode#Versions」,以及 MySQL 5.5 的文件:「MySQL :: MySQL 5.5 Reference Manual :: 10.1.10 Unicode Support」。

在 MySQL 5.5 之前,UTF-8 的設計最多吃 3bytes,因為 1byte 有 128 種組合 (7bits),2bytes 有 2048 種組合 (11bits),3bytes 有 65536 種組合 (16bits),共 67712 個空間可以用,但 Unicode 3.0 只用掉 49259 個。

而從 MySQL 5.5 開始支援的 Unicode 5.0 需要 99089 個空間,所以需要用到 4bytes 的版本,也就是增加 4bytes 的 2097152 種組合 (21bits),共 2164864 個空間。

但為了相容性,MySQL 5.5 的 utf8 encoding 還是使用 Unicode 3.0 版本。只有當特別指定 utf8mb4 encoding 時才會用到 Unicode 5.0 版本。使用 utf8mb4 encoding 時,要注意 client 端也要支援,不然會讀不到東西...

fPrivacy:在 Google Chrome 下調整 Facebook 應用程式可用權限

fPrivacy 的說明「Makes Facebook permissions optional.」把功能說明的很清楚,就是在授權 Facebook 權限的時候,把應用程式可用權限調低。

Plurk 為例,當 Plurk 需要 Facebook 權限時,提出需要這些權限:

你可以發現上方多了一條東西。這時候你可以把 publish_actions 勾勾拿掉 (看這個意思應該是「以我的名義貼文」的權限),按下 Update 按鈕後:

按下 Update 按鈕後,就把需求變少了。甚至你可以再拔掉 email 這組,再按 Update 按鈕:

就什麼權限都不給他了,這拿來對付過度要求權限的應用程式還蠻好用的...

機器總算回來了...

前幾天用 freebsd-update 把系統升到 9.0,結果 libutil.so.8 不見了... 由於 sudo 用到 libutil.so.8,加上我又忘記 root 密碼,結果就只好找時間約人進機房處理了...

除了改密碼外,先裝 compat8x 把服務跑起來...

Archives