2011年9月25日 星期日
mysqldump 匯出中文字變亂碼
使用 mysqldump 將資料庫匯出,移轉到另一台主機時,再匯入到資料庫時,發現所有中文字都變成亂碼。請先連到 mysql ,輸入以下指令:
SHOW VARIABLES LIKE 'character\_set\_%';
如果顯示內容如下:
+--------------------------+--------+
| Variable_name | Value |
+--------------------------+--------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
+--------------------------+--------+
最後一行告訴我們,系統是使用 utf8 編碼,但,其它的幾行其實告訴我們,mysql 是使用 latin1 做為預設編碼。
另外,還可以再執行以下指令:
show create database DBNAME;
顯示內容如果是:
CREATE DATABASE `DBNAME` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */
表示這個資料庫是使用 utf8 編碼。 那,問題就不大了,使用
mysqldump -u DBuser -p DBname --default-character-set=latin1 > DBname.sql
將資料庫匯出,將 sql 檔案移到 新的主機後,先用 vi or gedit 開啟檔案,將裡頭所有的 latin1 取代為 utf8。
接下來就可以匯入sql檔案,應該就正常囉!!
2011年9月24日 星期六
Lenovo T420s 的 Trackpoint
在 T420s 上安裝 ubuntu 11.04 的版本,安裝的幾次經驗裡,依之前的 trackpoint 設定動作調整 speed 和 sensitivity ,有幾次可以正常使用,有幾次就怪怪的,這次又遇到了,重新再找了一下 google 上的資料,發現以下這篇解決問題了。
http://b.crhan.com/2011/05/thinkpad_trackpoint_settings/
先執行
udevadm
test
/sys/devices/platform/i8042/serio1/serio2
檢查系統的硬體狀態。 發現和文章裡的環境是相同的。
接著使用 gedit 直接新增以下的檔案
/etc/udev/rules.d/10-trackpoint.rules
內容填入
SUBSYSTEM==
"serio"
, DRIVERS==
"psmouse"
, ENV{SERIO_TYPE}==
"05"
, WAIT_FOR=
"/sys/devices/platform/i8042/serio1/serio2/sensitivity"
, ATTR{sensitivity}=
"200"
, ATTR{speed}=
"120"
其中的 sensitivity 和 speed 是我自己習慣的數值。
重開機之後,小紅點的移動就很順手了。
2011年8月20日 星期六
2011年7月17日 星期日
ubuntu下使用 eclipse 開發 android 時抓不到 htc 手機
在 ubuntu 下使用 eclipse 開發 android 時,抓不到 htc 手機的問題。
其實,如果是乾淨的環境,安裝 eclipse ,再依 android sdk 網站上的說明文件安裝 android 環境,應該是可以順利的抓到 htc 手機,執行程式時,也會自動上傳到手機上執行。
不過,如果是將資料 copy 出去再 copy 回來,包含 eclipse 和 android 環境也這麼處理時,可能會發現 eclipse 開發 java 是OK的,開發 android 也OK,但,就是連不上原本的 htc 手機了~~
在網路上找到二篇文章,很有幫助。
http://developer.android.com/guide/developing/device.html
http://blog.yam.com/pigfly/article/29335620
第一篇是官方文件,也是制式的寫法,如果看不懂的話,可以參考第二篇的,比較白話也比較清楚,而且還是中文的~~ ^_^
不過,依據我自己的 ubuntu 10.04 的環境(不知道是 ubuntu 還是 android 更新緣故)有些小地方要稍微改一下。以下文字,我是截取第二個來源,再依我自己的實際狀況重新修改過的流程。
其實,如果是乾淨的環境,安裝 eclipse ,再依 android sdk 網站上的說明文件安裝 android 環境,應該是可以順利的抓到 htc 手機,執行程式時,也會自動上傳到手機上執行。
不過,如果是將資料 copy 出去再 copy 回來,包含 eclipse 和 android 環境也這麼處理時,可能會發現 eclipse 開發 java 是OK的,開發 android 也OK,但,就是連不上原本的 htc 手機了~~
在網路上找到二篇文章,很有幫助。
http://developer.android.com/guide/developing/device.html
http://blog.yam.com/pigfly/article/29335620
第一篇是官方文件,也是制式的寫法,如果看不懂的話,可以參考第二篇的,比較白話也比較清楚,而且還是中文的~~ ^_^
不過,依據我自己的 ubuntu 10.04 的環境(不知道是 ubuntu 還是 android 更新緣故)有些小地方要稍微改一下。以下文字,我是截取第二個來源,再依我自己的實際狀況重新修改過的流程。
- 在终端機執行 lsusb , 會看到
Bus 001 Device 008: ID 0bb4:0c02 High Tech Computer Corp. - 輸入
sudo gedit /etc/udev/rules.d/51-android.rules - 這是一個空的文件,直接貼上以下內容,儲存後離開
SUBSYSTEM=="usb", SYSFS{"High Tech Computer Corp."}=="0bb4", MODE="0666" - 執行以下指令修改權限
sudo chmod a+rx /etc/udev/rules.d/51-android.rules - 重新啟動 udev 服務
sudo /etc/init.d/udev restart - 切換路徑到 android-sdk-linux_x86/platform-tools 目錄下,依安裝的目錄為主,例如
cd ~/android-sdk-linux_x86/platform-tools - 分別執行以下二行指令
sudo ./adb kill-server
sudo ./adb devices - 應該可以在 eclipse 裡直接將程式上傳到手機上執行了吧!如果還是不行,再看看 eclipse 顯示的訊息,以我的為例,它要我執行
./adb uninstall tw.idv.kingbig.android.xxxx
就依訊息照做,再重新執行一次,就可以在手機上看到程式的運作囉!
2011年7月13日 星期三
mysql 預設編碼
先檢查目前資料庫的編碼:
重新啟動 mysql 後, 再執行以下指令:
再檢查資料庫, 看看是否正確, 如果不正確的話, 建議砍掉資料庫, 再重新建立即可.
- SHOW CREATE DATABASE myDB;
- 如果最後顯示的是 latin1 的話, 可以依照以下動作修改.
- [mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8' - [client]
default-character-set=utf8
重新啟動 mysql 後, 再執行以下指令:
- SHOW VARIABLES LIKE 'character\_set\_%'
再檢查資料庫, 看看是否正確, 如果不正確的話, 建議砍掉資料庫, 再重新建立即可.
2011年7月2日 星期六
ubuntu 10.04 安裝 libreoffice
參考來源: http://drupal.txwikinger.me.uk/content/libreoffice-now-available-ppa-ubuntu-1010-and-1004
主要就幾個動作:
主要就幾個動作:
- 移除 OpenOffice
sudo apt-get purge "openoffice*"
- 增加 libreoffice 的套件庫
sudo add-apt-repository ppa:libreoffice/ppa
- 更新套件資料
sudo apt-get update
- 安裝 libreoffice
sudo apt-get install libreoffice
2011年7月1日 星期五
php中文字的切割問題
在php裡要選取字串的某些字元,通常使用 substr 函數來處理,不過,遇到中文字時,往往會有問題。
Big5 的編碼,一個中文字是二個 byte,
utf-8 的編碼,一個中文字是三個 byte.
查詢之後,可以使用 mb_substr 函數來處理,而且不用管是幾個 byte ,例如
如果是 utf-8 編碼的文字, 使用 mb_substr("這是一串中文的字串", 0, 4, "UTF-8")
這會顯示 "這是一串" 四個字,又例如
如果是 big5 編碼的文字,使用 mb_substr("這是一串中文的字串", 0, 4, "BIG5")
還是顯示 "這是一串" 四個字。
在這個函數裡,一個中文字就當做是一個字,很方便。
參考資料: http://blog.xuite.net/chenbruse/bruse/13351768
Big5 的編碼,一個中文字是二個 byte,
utf-8 的編碼,一個中文字是三個 byte.
查詢之後,可以使用 mb_substr 函數來處理,而且不用管是幾個 byte ,例如
如果是 utf-8 編碼的文字, 使用 mb_substr("這是一串中文的字串", 0, 4, "UTF-8")
這會顯示 "這是一串" 四個字,又例如
如果是 big5 編碼的文字,使用 mb_substr("這是一串中文的字串", 0, 4, "BIG5")
還是顯示 "這是一串" 四個字。
在這個函數裡,一個中文字就當做是一個字,很方便。
參考資料: http://blog.xuite.net/chenbruse/bruse/13351768
訂閱:
文章 (Atom)