方法一
MYSQL資料庫使用UTF-8編碼的問題
1.用phpmyadmin建立資料庫和資料表 建立資料庫的時候,請將“整理”設定為:“utf8_general_ci”或執行語句:
CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
建立資料表的時候:如果是該欄位是存放中文的話,則需要將“整理”設定為:“utf8_general_ci”,如果該欄位是存放英文或數位話,預設就可以了。
相應的SQL語句,例如:
| 代碼如下 |
複製代碼 |
CREATE TABLE `test` ( `id` INT NOT NULL , `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM ; |
2.用PHP讀寫資料庫
在串連資料庫之後:
| 代碼如下 |
複製代碼 |
$connection = mysql_connect($host_name, $host_user, $host_pass); |
加入兩行:
| 代碼如下 |
複製代碼 |
mysql_query("set character set 'utf8'");//讀庫 mysql_query("set names 'utf8'");//寫庫 |
就可以正常的讀寫MYSQL資料庫了。
另一種辦法
步驟一 命令列執行:mysqldump --opt -hlocalhost -uroot -p*** --default-character-set=lantin1 dbname > /usr/local/dbname.sql
步驟二 將 dbname.sql檔案中的create table語句的CHARSET=latin1改為CHARSET=utf8
步驟三 在dbname.sql檔案中的insert語句之前加一條"set names utf8;"
步驟四 將dbname.sql轉碼為utf-8格式,建議使用UltraEditor,可以直接使用該編輯器的"轉換->ASCII到UTF-8(Unicode編輯)",或者將檔案另存新檔UTF-8(無BOM)格式
步驟五 命令列執行:mysql -hlocalhost -uroot -p*** --default-character-set=utf8 new_dbname < /usr/local/dbname.sql