【问题标题】:Golang mysql client DB.Query method not reutning utf-8 encoded charactersGolang mysql客户端DB.Query方法不重新使用utf-8编码字符
【发布时间】:2017-10-25 03:28:15
【问题描述】:

我有 mysql 表,它的某些列中存储了 UTF-8 字符。该表是使用 DEFAULT CHARSET=utf8;

创建的

如果我手动运行 select 语句,我可以看到 UTF-8 字符,但如果我使用 golang 客户端并使用 DB.Query 方法,那么我看到这些字符都是乱码!

此外,插入也是从 golang 客户端完成的。为什么插入很好,而读取却使它乱码? 在进行查询时,我看不到任何设置字符集的参数。我错过了什么?

【问题讨论】:

  • 客户端字符集是连接过程的一部分。显示您如何连接到数据库。
  • 大约有 5 种不同的“乱码”,你得到了哪一种?可能答案在这里:stackoverflow.com/questions/38363566/…

标签: mysql go utf-8


【解决方案1】:

所以当行被插入数据库时​​,客户端字符集是latin1。 golang 客户端默认使用的是 utf8。使用 utf8 再次插入所有行,现在 golang utf8 客户端似乎可以正常读取字符!

对于遇到类似问题的其他人:

以下命令告诉当前配置

mysql> 状态

以下命令设置客户端字符集。在插入语句之前运行它。

mysql> 设置名称 utf8

【讨论】:

  • 这不是完全正确的做法:应该有一个连接选项来指定一个字符集。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-27
  • 1970-01-01
  • 1970-01-01
  • 2012-07-24
  • 1970-01-01
  • 2011-04-11
  • 2012-08-03
相关资源
最近更新 更多