数据库编码转换这种问题我们碰到的比较少,但不是没有昨天有一个朋友就希望把以前数据库编码转换在uft-8了,下面我来给大家介绍两个办法.
方法一,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. |