方法一
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