mysql 中文显示 ????? 的问题

2015-01-15 20:32:38 +08:00
 johnnyR

用 Navicat 将一个 txt gb2312 编码的数据库导入 mysql~输入账学号查询结果显示正常!但输入中文查询结果中文却显示 ????? 这是为什么?

5194 次点击
所在节点    MySQL
19 条回复
abcbit
2015-01-15 20:36:55 +08:00
統一所有編碼, over
johnnyR
2015-01-15 20:40:30 +08:00
@abcbit 从网页,数据库,表,全部都设置了utp8了。还是这样。是原导入文件的问题吗
xlvecle
2015-01-15 20:42:52 +08:00
统一utf-8就行了,页面如果不是改页面
haiyang416
2015-01-15 20:49:18 +08:00
SET NAMES utf8
传输编码也要记得改
johnnyR
2015-01-15 20:51:10 +08:00
@haiyang416 这个连接数据库时的编码吗?在连接数据库的配置文件也改了!……
johnnyR
2015-01-15 20:52:47 +08:00
在用navicat导入时第一步要不要选择utf8?
loyd1234
2015-01-15 20:54:49 +08:00
在你配置mysql的时候就应该选择utf-8
jyjmrlk
2015-01-15 20:58:23 +08:00
有问号的那个字段设置一下?

比如这样?

`description` varchar(255) CHARACTER SET ucs2 NOT NULL DEFAULT '',
johnnyR
2015-01-15 21:17:06 +08:00
@jyjmrlk 这个可以试试。
jyjmrlk
2015-01-15 21:19:17 +08:00
@johnnyR 有用的话记得告诉我。
edire
2015-01-15 21:31:12 +08:00
需要统一txt 和 mysql的编码
johnnyR
2015-01-15 21:38:46 +08:00
@edire 怎么统一?用编辑器打开txt文件,如果选择utf8就会显示乱码。gb2312才 显示正常
endoffight
2015-01-15 21:49:35 +08:00
编码需要统一
插入前确保数据库编码和文件编码一样,推荐utf8
如果不一样,修改文件的编码,包括sql内容中和编码有关的字段和文件编码。
然后导入
取数据前执行一次set names utf8
johnnyR
2015-01-15 21:56:46 +08:00
还有在phpmyadmin里面中文为显示正常。
Mac
2015-01-15 23:03:57 +08:00
@johnnyR 用notepad++把源文件转成UTF-8编码再导入
ericls
2015-01-15 23:20:34 +08:00
@johnnyR 是可以转换的 这就是问题所在 你把gbk硬生生导入了utf8 而没经过转换
johnnyR
2015-01-16 00:54:55 +08:00
@ericls 谢谢,这个也可以试试
johnnyR
2015-01-16 00:55:21 +08:00
@Mac 不会乱码吗
Mac
2015-01-16 09:11:21 +08:00
@johnnyR 不会,菜单-格式-转为UTF-8无BOM编码格式

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/162503

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX