2007年8月4日 星期六

PHP 5+MySQL 5 使用 Big5

內容來源:酷!學園討論區

Mysql 自從 4.1以後就內定語系是utf8,對於以前使用Big5開發的資料庫、PHP程式,如何轉到utf8是一場夢魘了。 PHP網頁中的語系設定還小事,addslashes()解決衝碼的程式,是否還原?不得不重視,其中MySQL的匯出->轉utf8->匯入MySQL才是會令人覺得恐怖的。萬一資料轉得不正確,後果是無法想像的,因此如何在PHP 5+MySQL 5使用以前的程式、資料庫(Big5),對我而言是得重要的。

PHP 5 + MySQL 5 使用Big 5語系方法。
0) 系統
OS:CentOS 5.0
modules:    
php-mysql-5.1.6-12.el5    
mysql-server-5.0.22-2.1    
mysql-5.0.22-2.1

1) 修改Apache 語系  
[root@adm ~]# vim /etc/httpd/conf/httpd.conf  
AddDefaultCharset Big5

2) 修改 PHP 語系  
[root@adm ~]# vim /etc/php.ini  
default_charset = "Big5"

3) 重啟Apache  
[root@adm ~]# /etc/init.d/httpd restart

4) 設定MySQL 語系(紅色代表要加入的部分)  
[root@adm ~]# vim /etc/my.cnf  
[mysqld]  
datadir=/var/lib/mysql  
socket=/var/lib/mysql/mysql.sock  
# Default to using old password format for compatibility with mysql 3.x  
# clients (those using the mysqlclient10 compatibility package).  
old_passwords=1  
default-character-set=latin1  

[mysql.server]  
user=mysql  
basedir=/var/lib  

[mysqld_safe]  
log-error=/var/log/mysqld.log  
pid-file=/var/run/mysqld/mysqld.pid  

[mysql]  
default-character-set=latin1

5) 重啟 MySQL  
[root@adm ~]# /etc/init.d/mysqld restart

這樣在MySQL4.0開發的資料庫及PHP程式,都可拿來新的環境使用了,而且以前在MySQL 4.0中一些無法輸入的特殊字,如峯(是山在上面的峰字)也可輸入進去了。

PS.MySQL4.1~5.0內定是用utf8,但MySQL4.0是用latin1,而不是big5,因MySQL沒有Big5的字集(charsets),而latin1就可支援big5了。

沒有留言: