內容來源:
酷!學園討論區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.11) 修改Apache 語系
[root@adm ~]# vim /etc/httpd/conf/httpd.conf
AddDefaultCharset Big52) 修改 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=latin15) 重啟 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了。