查询MySQL数据库表,中文数据显示异常

jehu654 · 2021-03-19 12:12:08 · 2849 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2021-03-19 12:12:08 的主题,其中的信息可能已经有所发展或是发生改变。

如下图,中文数据显示为?? 试过很多方法,比如调成UTF-8也不行,有没有大佬知道什么回事 微信图片编辑_20210319120845.jpg

package main

import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" )

func main() { db, := sql.Open("mysql", "root:123@tcp(localhost:3306)/test") db.Ping() defer func() { db.Close() }() stmt, := db.Prepare("select id,name from gotest") defer func() { stmt.Close() }() rows, := stmt.Query() defer func() { rows.Close() }() var ( id int name string )

for rows.Next(){
    rows.Scan(&id,&name)
    fmt.Println(id,name)
}

}


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2849 次点击  
加入收藏 微博
13 回复  |  直到 2021-03-22 16:26:44
focusonline
focusonline · #1 · 4年之前

数据库什么编码?

jehu654
jehu654 · #2 · 4年之前
focusonlinefocusonline #1 回复

数据库什么编码?

默认latin1编码也试过,utf-8也试过,都不行

zzustu
zzustu · #3 · 4年之前
jehu654jehu654 #2 回复

#1楼 @focusonline 默认latin1编码也试过,utf-8也试过,都不行

如果是在Latin1时插入进去的,然后再调成UTF8查询还是乱码,要在转成UTF8后再插入才好。因为之前存的字符是有损的。取出来再用UTF8解码已经不是原来的样子了。

jehu654
jehu654 · #4 · 4年之前
zzustuzzustu #3 回复

#2楼 @jehu654 如果是在`Latin1`时插入进去的,然后再调成`UTF8`查询还是乱码,要在转成`UTF8`后再插入才好。因为之前存的字符是有损的。取出来再用`UTF8`解码已经不是原来的样子了。

试了一下,·truncate· 再 ·insert· 还是不行

focusonline
focusonline · #5 · 4年之前
jehu654jehu654 #2 回复

#1楼 @focusonline 默认latin1编码也试过,utf-8也试过,都不行

提醒你一下, mysql这个东西比较怪, 你只是改数据库的编码是不会影响表的, 你只改表的编码是不会影响列的.

jehu654
jehu654 · #6 · 4年之前
focusonlinefocusonline #5 回复

#2楼 @jehu654 提醒你一下, mysql这个东西比较怪, 你只是改数据库的编码是不会影响表的, 你只改表的编码是不会影响列的.

都改了,把库、表、列的编码都改成utf8了,也不行

focusonline
focusonline · #7 · 4年之前
jehu654jehu654 #6 回复

#5楼 @focusonline 都改了,把库、表、列的编码都改成`utf8`了,也不行

你改成utfbmb4试试

jehu654
jehu654 · #8 · 4年之前
focusonlinefocusonline #7 回复

#6楼 @jehu654 你改成utfbmb4试试

改不了,没这个字符集

focusonline
focusonline · #9 · 4年之前
jehu654jehu654 #8 回复

#7楼 @focusonline 改不了,没这个字符集

不可能吧, 你mysql什么版本? 不行就换成pg, 所有问题都解决了.

jehu654
jehu654 · #10 · 4年之前
focusonlinefocusonline #9 回复

#8楼 @jehu654 不可能吧, 你mysql什么版本? 不行就换成pg, 所有问题都解决了.

5.1的,5.5.3版本之后才支持

focusonline
focusonline · #11 · 4年之前
jehu654jehu654 #10 回复

#9楼 @focusonline 5.1的,5.5.3版本之后才支持

速度丢掉mysql 改成pg,你会觉得这个世界重新变得很美好

zzustu
zzustu · #12 · 4年之前
jehu654jehu654 #10 回复

#9楼 @focusonline 5.1的,5.5.3版本之后才支持

问问题环境 背景 上下文 都不介绍清楚,问到哪答到哪

jehu654
jehu654 · #13 · 4年之前
zzustuzzustu #12 回复

#10楼 @jehu654 问问题环境 背景 上下文 都不介绍清楚,问到哪答到哪

不懂那么多规矩

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传