解决mysql4.0.17导出乱码问题

MZBOY 2007-07-21 10:56:48
我将mysql4.0.17中的数据进行备份,导出的中文数据为乱码,由于重装系统原来的数据库删除了,就留下了备份的数据库文件,重新安装mysql4.0.17后进数据倒入数据库,访问jsp页面时中文都是乱码。jsp页面编码是gb2312,数据库编码是默认的。下面是部分的备份数据库:
-- MySQL Administrator dump 1.4
--
-- ------------------------------------------------------
-- Server version 4.0.17-nt


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;



DROP TABLE IF EXISTS `myroad_branch`;
CREATE TABLE `myroad_branch` (
`id` bigint(20) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) TYPE=InnoDB;

--
-- Dumping data for table `myroad`.`myroad_branch`
--

/*!40000 ALTER TABLE `myroad_branch` DISABLE KEYS */;
INSERT INTO `myroad_branch` (`id`,`name`) VALUES
(1,'ÊÐÕþÉè¼ÆÒ»´¦'),
(2,'ÊÐÕþÉè¼Æ¶þ´¦'),
(8,'ÑÒÍÁÊÒ'),
(4,'°ì¹«ÊÒ'),
(5,'²ÆÎñÊÒ'),
(3,'¹«Â·Éè¼Æ´¦'),
(9,'¾­Óª´¦'),
(6,'¾­¼ÃÊÒ'),
(7,'×ܹ¤°ì');
/*!40000 ALTER TABLE `myroad_branch` ENABLE KEYS */;
...全文
1895 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
applebomb 2007-07-25
  • 打赏
  • 举报
回复
mark
Avoid 2007-07-21
  • 打赏
  • 举报
回复
MySQL默认编码是latin1。。。

你在运行SQL语句前先执行

set names gb2312
OracleRoob 2007-07-21
  • 打赏
  • 举报
回复
系统的默认值是latin1的瑞典语排序方式

当按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。

解决方法是在发送查询前执行一下下面这句:

SET NAMES 'utf8';

它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;


在查询前加一行:
mysql_query("SET NAMES 'gb2312';",$this->con);

56,681

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧