【问题标题】:mysql ’ show up as ’mysql ' 显示为 ’
【发布时间】:2010-08-10 15:33:08
【问题描述】:

当我尝试运行时:

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

在我的 ubuntu 桌面上,myHost 是远程 Red Hat 服务器,toInsert.sql 包含 ’,它们显示为 ’

我该如何解决这个问题?

注意! ’ 与 ' 不同

当我从带有 mysql gui 客户端的 windows 机器上运行 toInsert.sql 时,我没有这个问题。

谢谢

【问题讨论】:

  • 似乎是字符编码问题,甚至可能只是在终端中。

标签: mysql encoding insert character apostrophe


【解决方案1】:

--default-character-set=utf8 已修复

所以

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

感谢您的帮助!

【讨论】:

  • 我必须等待 24 小时才能做到这一点,这是 stackoverflow.com 规定的,我很乐意投票支持另外两个,但我还没有足够高的代表。为了帮助其他人,我发布了我在仔细阅读 mysql 手册页后发现的修复程序。
【解决方案2】:

听起来您的代码对编码感到困惑。定义数据库中字符串数据的编码是什么(我推荐 UTF-8,但只要你保持一致,任何东西都可以工作),然后确保你使用的所有工具都意识到这一事实。

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

【讨论】:

  • 感谢您的帮助!它帮助我找到了解决方案!
【解决方案3】:

这个问题可能出现在两个地方:

首先,您需要检查数据库中所有内容的编码是否为 UTF-8。

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

【讨论】:

  • 嗯,好吧,我已经运行了这个......“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 会不会是 latin1 的问题?但不管怎样,我真的不能随意改变这些。我的终端显示字符很好。但奇怪的是,昨晚(下班回家)我通过一些反向 ssh 隧道尝试了它,它成功了。
  • 感谢您的帮助!它帮助我找到了解决方案!
猜你喜欢
  • 2011-01-29
  • 1970-01-01
  • 2011-04-11
  • 2016-01-09
  • 1970-01-01
  • 1970-01-01
  • 2016-02-17
  • 2017-07-19
相关资源
最近更新 更多