迷路林肯 发表于 2007 年 5 月 15 日 16:53:44

教大家怎样将MYSQL从GBK转UTF-8

-- phpMyAdmin SQL Dump
-- version 2.8.0-rc2
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2007 年 05 月 15 日 08:17
-- 服务器版本: 5.0.18
-- PHP 版本: 5.1.2
--
-- 数据库: `tem`
--

-- --------------------------------------------------------

--
-- 表的结构 `test`
--

CREATE TABLE `test` (
`name` varchar(10) character set gbk NOT NULL,
`value` varchar(10) character set gbk NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- 导出表中的数据 `test`
--

INSERT INTO `test` (`name`, `value`) VALUES ('我的名', '我的值'),
('我的名', '我的值'),
('我的名', '我的值');


上面是我导出的数据库结构,我是直接在”tem"数据中操作的(没有的建一个 CREATE DATABASE `tem` ;)。
<?PHP
$link = mysql_connect('localhost','root','root');
mysql_select_db('tem') or die('不能选择数据库');
$tem =mysql_query('select * from `test`');
while($result = mysql_fetch_array($tem)){
        print $result['name']."<br>";
        print $result['value']."<br>";
}
mysql_free_result($result);
//mysql_query('insert into `test` values("我的名","我的值")');
//mysql_query('DELETE FROM `test` where `name` = "我的名"');
?>
这时test.php文件能正常访问,默认的编码为gb2312,大家可以转成UTF-8看下,肯定乱码了。
那怎么改成UTF-8的编码呢?
其实就改动几个地方就可以了,看下我改动的地方
--
-- 表的结构 `test`
--
SET NAMES `utf8`;
CREATE TABLE `test` (
`name` varchar(10) character set utf8 NOT NULL,
`value` varchar(10) character set utf8 NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- 导出表中的数据 `test`
--
这样修改后再导入到库里面,发现整理已经从GBK变成UTF8了。这样修改后还要将test.php内容修改为
<?PHP
header("Content-type: text/html; charset=utf-8");   //添加1:以UTF-8方式显示页面内容
$link = mysql_connect('localhost','root','root');
mysql_select_db('tem') or die('不能选择数据库');
mysql_query('set names `utf8`');   //添加2:设置MYSQL字符集为UTF8
$tem =mysql_query('select * from `test`');
while($result = mysql_fetch_array($tem)){
        print $result['name']."<br>";
        print $result['value']."<br>";
}
mysql_free_result($result);
//mysql_query('insert into `test` values("我的名","我的值")');
//mysql_query('DELETE FROM `test` where `name` = "我的名"');
?>
OK,经过这两步操作,你就可以将你的程序变成UTF8编码的了。

当然模板和和其他文件里的字符也要相应的改变了,这也就是为什么有些页面某部分在GBK下显示正常,而在UTF-8下显示不正常的原因。

呆会儿放个批量修改文件编码的脚本。

抽丫滴 发表于 2007 年 5 月 15 日 17:04:35

真功夫
谢谢无私分享:victory:

谪仙人 发表于 2007 年 5 月 15 日 17:09:58

牛淫。。。。。。。

0038 发表于 2007 年 5 月 15 日 18:03:51

收藏..........

天津互联 发表于 2007 年 5 月 15 日 18:37:09

学习,这个一定要顶/

sswolf 发表于 2007 年 5 月 15 日 21:24:16

正需要:lol :victory:

winsock 发表于 2007 年 5 月 16 日 10:09:54

我劝楼主不要误导观众

waitme 发表于 2007 年 5 月 16 日 10:11:14

偶还是喜欢用工具啊 。。。。。。。。。

还能注册马.甲么 发表于 2007 年 5 月 16 日 10:13:45

:( 进入PMA,选择显示编码UTF-8,导出数据就是UTF-8了。。。。。

waitme 发表于 2007 年 5 月 16 日 10:16:39

回复 #9 还能注册马.甲么 的帖子

:( :( :(
要是几百MB也可以么啊 ?
页: [1] 2
查看完整版本: 教大家怎样将MYSQL从GBK转UTF-8