dzwvip / oracle

gorm-oracle godror
Other
21 stars 10 forks source link

字段中有中文时,有时候读不到数据 #7

Closed cnwangfei closed 1 year ago

cnwangfei commented 1 year ago

读取字段内容打印出来的[]byte是: [239 191 189 239 191 189 239 191 189 239 191 189] plsql查询出来能显示中文 ORACLE字符集为US7ASCII

dzwvip commented 1 year ago

这个库用的Oracle驱动是 godror ,加一行代码 设置一下相应的字符集 试试,os.Setenv("NLS_LANG", "SIMPLIFIED CHINESE_CHINA.ZHS16GBK") 如果不行 , 就得去这个 godror 库 提issues

dzwvip commented 1 year ago

我专门测试了一下,godror 这个库暂时没找到啥解决方式 读取US7ASCII 字符集的中文内容,可以使用另一个库试试gorm-oralce ,这个用的 go-ora的驱动,不依赖Oracle客户端, 连接参数加上 client charset=ZHS16GBK 例如:"oracle://system:manager@127.0.0.1:1521/orcl?client charset=ZHS16GBK"

cnwangfei commented 1 year ago

我专门测试了一下,godror 这个库暂时没找到啥解决方式 读取US7ASCII 字符集的中文内容,可以使用另一个库试试gorm-oralce ,这个用的 go-ora的驱动,不依赖Oracle客户端, 连接参数加上 client charset=ZHS16GBK 例如:“oracle://system:manager@127.0.0.1:1521/orcl?client charset=ZHS16GBK”

谢谢,我用了个笨办法,把会有中文的字段都转码为16进制,go端再解码成字符串的方式处理了。