社区
基础编程
帖子详情
mysql导入数据之后的中文是???,怎么解决?
zairwolf
2005-05-19 05:28:53
我记得是mysql没有设置好,不支持中文所致吧?
...全文
400
9
打赏
收藏
mysql导入数据之后的中文是???,怎么解决?
我记得是mysql没有设置好,不支持中文所致吧?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ronin_china
2005-05-19
打赏
举报
回复
这个贴得好好学习~~
我用phpmyadmin倒文件,碰到乱码只好不用文件改ctrlc ctrlv,不是什么好办法。
helloyou0
2005-05-19
打赏
举报
回复
最近问这个的很多,我写一下我的理解。
和字符相关的变量中这几个和sql很有关系:
character_set_client
character_set_connection
character_set_results
此外就是数据库中对相应字段设置的charact set,如果没有对字段设置,缺省是table的charact set,table也没有指定则缺省使用database的。
上面3个变量的作用是这样的,client表示客户端发送过来的字符集,results表示发送到客户端的字符集(这两个分开是因为发送过来和发送过去的不一定是同一个客户端),connection则在客户端和数据库起一个连接作用。
具体是这样:比如我在mysql命令行设置client为gbk,connection为utf8,results为gbk,数据库为big5,
当我发送一个insert语句的时候,这个语句作为gbk代码,先转为utf8代码(connection),再转为big5(database)插入数据库。
而运行一个select语句的时候,从数据库得到的结果则相反的过程,由big5转为utf8,再转为gbk,你得到gbk的结果。
因此最主要的是让client和results和你使用的客户端一致。比如你的网页是utf8编码,你就要设置这两个为utf8。
而在mysql命令行的时候,我用的是2000,需要设置为gbk
而我们用的set names XXX,实际上就是同时设置这3个变量为XXX。
在这样的情况下,我们可以把一个数据库中的不同表或不同字段设为不同的字符集,只要上面3个设置正确,就可以在数据库中同时使用不同的字符集。
注意要保证你的数据库中的字符已经使用了正确的字符集,比如如果一开始你设置错误,插入数据后,本身数据的编码就是不正确的,然后即使设置改回来,也不可能得到正确的显示了。
还有一个是编码互相之间的兼容性,如果一个字符在gbk中有,在utf8中没有,那么在gbk-》utf8-》gbk的过程中,它就变成了“?”
jstones
2005-05-19
打赏
举报
回复
我碰到过这样的问题
我的经验供参考:
首先,你的mysql必须是编译安装的,编译时必须把字符集"gb2312"或"gbk"加进去。
然后,就是设计的表和库,也必须是"gb2312"或"gbk".
我那时是用命令来配置表和库成"gb2312"或"gbk"的,可是怎么也不支持中文。我认为我的命令没打错,我是参考mysql自带的说明来执行的。
后来,我用phpmyadmin的较高版本,发现里面有将表变成其他字符集,这是才成功的。
也支持了中文的查询。
总结:这种错误经常是字符集的问题。
想办法把字符集的问题解决了,就差不多了。
提示:我曾经用命令的方式察看表的默认字符集 gb2312,一切正常,可实际那个表的字符集不是gb2312。
也就是命令方式显示的不一定准。
tony-杨
2005-05-19
打赏
举报
回复
你看是不是数据库编码的问、提?
字符节选择latin1看看?
lawyu
2005-05-19
打赏
举报
回复
sorry 重新便宜 -->重新编译
lawyu
2005-05-19
打赏
举报
回复
不是,只是部分版本有,同一个系统,我曾经出现过这样的问题,但是前几天在www.mysql.com上下载了mysql-max-4.1.11-pc-linux-gnu-i686.tar.gz(非编译版本)就一切正常。
如果要修改环境变量,安装好的variables配置文件里应该只有一个关于字符集的,应该改它就可以的,如果要把charactor_server等那些都修改要在编译前才能改,必须下载mysql的源码重新便宜,左便宜前用./configure --做配置
zairwolf
2005-05-19
打赏
举报
回复
嗯。我想知道的就是怎样配置那个环境变量。
客户说在所有版本的mysql都有这个问题。
lawyu
2005-05-19
打赏
举报
回复
最好的解决方法应该是配置mysql环境变量,使服务器端和客户断字符集统一
lawyu
2005-05-19
打赏
举报
回复
没有配置好环境变量 show varibales;看看
这是mysql某一个版本的问题,在mysql命令行下面set names 'gb2312'可以解决,你可以把他加到操作mysql的类里
php版
mysql
大
数据
库备份和恢复工具
2.
导入
数据
时,提示原
数据
库编码,并自动识别. 3.增加
导入
目标
数据
库字符集选项. 4.支持GBK、BIG5、UTF8之间的编码转换(见特别说明4). 特别说明: 1.乱码问题一般仅出现在
MySQL
4.1/
MySQL
5 版本以后,如果你的...
帝国备份王2008开源版下载 (
MYSQL
专用备份工具)
3、
解决
不同
MYSQL
版本
数据
不能互导问题,通过备份王不存在
数据
库版本区别。 帝国备份王(EmpireBak)主要特性 1、分组备份,专为大
数据
备份设计 采用分组备份,系统自动将
数据
库分成多部分进入导出.理论上不限
数据
库...
Mysql
插入
中文
变为全问号???的问题
解决
方法
解决
mysql
插入
中文
变成问号?的问题 程序执行插入语句 问题:
数据
库中的记录,出现
中文
变成问号 . 当通过程序或者
mysql
客户端插入
数据
的时候出现
中文
变成??这种类似的乱码时,多半是由于
数据
库编码的问题
解决
办法...
mysql
解决
插入
中文
数据
显示
当通过程序或者
MySQL
客户端插入
数据
的时候出现
中文
变成?这种类似的乱码时,多半是由于
数据
库编码的问题。2.如果通过客户端或者命令行插入也依然报错,则修改
mysql
安装配置文件my.ini。1.如果是Java程序,则在url连接...
插入
mysql
的
数据
中文
变成了问号?【
mysql
笔记】
2、如果是windows环境,那么进入到安装目录下打开这个文件。:在运行代码的时候插入表中的
数据
变成了问号?1、输入命令查看
数据
库的编码格式。把所有的latin1都改成ut8。发现一个非utf-8编码。3、重启
mysql
服务。
基础编程
21,886
社区成员
140,364
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章