2010-08-10 29 views
1

,当我尝试运行:mysql的'显示为一个€™

mysql -u myUser -pPassword -D myDatabase -h myHost < toInsert.sql 

从我的Ubuntu桌面,MYHOST是一个远程的Red Hat服务器和toInsert.sql包含它们显示为’

我该如何解决这个问题?

注意!是不一样的'

当我从一台windows机器运行toInsert.sql与MySQL gui客户端我没有这个问题。

谢谢

+0

看起来像一个字符编码问题,甚至可能只是在终端。 – JKirchartz 2010-08-10 15:36:29

回答

2

--default-character-set=utf8有固定它

所以

mysql -u myUser -pPassword -D myDatabase -h myHost --default-character-set=utf8 < toInsert.sql

感谢您的帮助!

+0

您应该标记接受的最有帮助的答案。 – BalusC 2010-08-11 13:04:15

+0

我不得不等待24小时这样做,这是由stackoverflow.com强制我会愉快地投其他两个,但我没有足够高的代表尚未。为了帮助别人,我发布了修正后给出的mysql手册页更仔细的阅读。 – user401090 2010-08-12 19:23:50

1

听起来就像你有代码混淆编码。定义数据库中字符串数据的编码是什么(我推荐使用UTF-8,但只要您保持一致,任何东西都会起作用),然后确保您使用的所有工具都能实现这一点。

而当UTF-8数据字节被重新解释为ISO 8859-1时,“’”是“”。

+0

谢谢你的帮助!它帮助我找到解决方案! – user401090 2010-08-11 13:02:26

1

有两个地方,这个问题可能是:

首先,您需要检查在您的数据库中的一切编码是UTF-8。

如果这样不能解决问题,那么您的数据库可能是正确的,但您的控制台无法显示UTF-8字符。将查询的输出传输到文件中,并在可显示UTF-8字符的内容中查看它,看看它是否正确。如果它看起来是正确的,那么问题是你的终端。

+0

嗯,呃,我已经运行了这个...“mysql> SHOW VARIABLES LIKE'character \ _set \ _%';”我得到︰character_set_client:latin1,character_set_connection:latin1,character_set_database:utf8,character_set_filesystem:binary,character_set_results:latin1,character_set_server:latin1,character_set_system:utf8 它可以拉丁1的踢吗?但无论如何,我并不是真正有权改变这些。而我的终端显示的字符很好。但奇怪的是,昨晚(下班回家)我通过一些反向的ssh隧道尝试了它,它工作。 – user401090 2010-08-11 12:41:07

+0

谢谢你的帮助!它帮助我找到解决方案! – user401090 2010-08-11 13:00:44