工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2842|回复: 8

MySQL中文显示问题

[复制链接]
发表于 2007-5-14 16:41 | 显示全部楼层 |阅读模式
用MySQL建了个数据库,用的是默认的MyISM数据表,由于要录入中文数据,故所有CHAR类型的数据我都采用了UTF8格式,现在问题来了:

在Linux中用命令行的mysql工具,进行查询时中文乱码,执行“set names utf8;”后,查询正常。
而在Windows下,同样用命令行的mysql工具,在执行“set names utf8;”后,查询仍然乱码,但执行“set names gbk;”后,查询正常。

但我用的可是UTF8呀!而且数据库是直接从Linux下复制到Windows分区的(这就是我用MyISM数据表的原因),为什么在windows下要用GBK编码方式才能正常查询?跟服务器有关吗(用的都是Localhost)?
发表于 2007-5-14 18:28 | 显示全部楼层
你的数据库怎么移的?
是 用  phpmyadmin 导出吗?


还有,你的MYSQL的默认字符集是什么?
这些都有关的
回复

使用道具 举报

 楼主| 发表于 2007-5-14 20:17 | 显示全部楼层
由于用的是MyISM数据表,所以是直接复制的(参考过“MySQL5 权威指南  杨晓云等译“,这是允许的),没有使用phpMyadmin

与MYSQL默认字符集相关么?我没改过,应该都是Latin1的吧?而且查询之前已经用"set names 编码方式"更改过了,应该跟这没关系吧?
回复

使用道具 举报

发表于 2007-5-14 21:20 | 显示全部楼层
好像有关系....

没有试过直接移数据文件这种方法
回复

使用道具 举报

发表于 2007-5-19 11:23 | 显示全部楼层
为什么不用dump呢/
回复

使用道具 举报

发表于 2007-5-20 23:35 | 显示全部楼层
原帖由 hjack 于 2007-5-19 03:23 发表
为什么不用dump呢/


都说了,用MyISM表可以用copy paste大法,方便~~~~~

PS:我已经试验过了,在XP下新建一MyISM表,utf8编码,再建一列,CHAR(20),同样设为utf8。
  然后用命令行方式查询,乱码;
  先输入“set names utf8",再查询,乱码;
  若先输入“set names gbk",再查询,则正常。

  可见,乱码的产生与Windows系统有关,跟数据库本身无关~~~
回复

使用道具 举报

发表于 2007-5-21 08:06 | 显示全部楼层
分别在linux 和 windows 下用这个命令看看……


SHOW VARIABLES LIKE ‘character_set_%’;


印象中,影响编码的不只是数据库的编码,还有什么“传送编码”
character_set_server
character_set_connection
character_set_client
……

这些应该都会有影响
在WIN下安装mysql可能你选了 latin
回复

使用道具 举报

发表于 2007-5-21 11:07 | 显示全部楼层
早查过了,它们的编码设置都一样,只是奇怪稍为设置下Linux就正常,而Windows就不行
回复

使用道具 举报

发表于 2007-6-8 21:34 | 显示全部楼层
默认的myisam的确是有这三个文件,可以通过楼主说的方式复制。

但当数据量超过200W行时,myisam性能就会很大的下降。同时myisam出故障的机率相比innodb大很多。

用innodb不能使用复制的方法。
但性能上会比myisam好。

而且mysqldump也不会不方便呀。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-8-30 21:12

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表