如下图,中文数据显示为??
试过很多方法,比如调成UTF-8也不行,有没有大佬知道什么回事
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)
}
}
有疑问加站长微信联系(非本文作者)

数据库什么编码?
默认latin1编码也试过,utf-8也试过,都不行
如果是在
Latin1
时插入进去的,然后再调成UTF8
查询还是乱码,要在转成UTF8
后再插入才好。因为之前存的字符是有损的。取出来再用UTF8
解码已经不是原来的样子了。试了一下,·truncate· 再 ·insert· 还是不行
提醒你一下, mysql这个东西比较怪, 你只是改数据库的编码是不会影响表的, 你只改表的编码是不会影响列的.
都改了,把库、表、列的编码都改成
utf8
了,也不行你改成utfbmb4试试
改不了,没这个字符集
不可能吧, 你mysql什么版本? 不行就换成pg, 所有问题都解决了.
5.1的,5.5.3版本之后才支持
速度丢掉mysql 改成pg,你会觉得这个世界重新变得很美好
问问题环境 背景 上下文 都不介绍清楚,问到哪答到哪
不懂那么多规矩