今天工作上,使用Dbeaver工具向人大金仓数据库导入.cvs文件后出现中文乱码,如下图所示:
我的解决办法如下:
1、数据库中查询:show server_encoding
查询了其他的技术帖子。发现,需要先查询数据库的编码格式是什么,然后判断是否和你导入的文件编码格式匹配。utf-8匹配utf-8,GBK匹配GBK。
2、查看自己的cvs文件编码格式
可以用记事本、Sublime Text、Notepad++等工具打开,查看编码格式。如下图:
这里补充给大家:
2.1、Windows (CRLF):换行符格式
- 含义:
“CRLF” 是 “Carriage Return + Line Feed” 的缩写,即 “回车符(CR,\r
)+ 换行符(LF,\n
)” 的组合。
- 在 Windows 系统中,文本文件的换行符默认使用CRLF(
\r\n
) 表示一行的结束,这是 Windows 特有的换行格式。- 与之对比的是:
- Unix/Linux 系统通常使用LF(
\n
) 作为换行符;- 旧版 Mac 系统(Mac OS 9 及之前)使用CR(
\r
),新版 Mac OS(基于 Unix)也改用 LF。- 作用:
换行符决定了文本在不同系统中显示时的换行方式。如果文件在跨系统传输时换行符不兼容,可能导致文本显示为一行或格式错乱。2.2、ANSI:字符编码格式
- 含义:
“ANSI” 在这里是 Windows 系统对本地默认字符编码的统称,具体编码取决于系统语言设置:
- 在中文 Windows 系统中,ANSI 通常指GB2312、GBK 或 GB18030等中文编码,支持简体中文的显示和存储。
- 在英文或其他语言系统中,ANSI 可能对应 ASCII、ISO-8859-1 等编码。
- 特点:
- ANSI 编码是一种单字节或多字节混合编码,不同语言字符的编码长度不同(如中文通常占 2 字节,英文占 1 字节)。
- 缺点是不支持全球所有字符(如 emoji、罕见字符),且不同语言的 ANSI 编码可能冲突(如同一字节在中文和英文编码中代表不同字符)。
所以我本地的文件应该是GBK格式。
3、修改本地文件格式
使用记事本,在另存为步骤里选编码为UTF-8
如果使用Sublime Text,可以重新编码、另存为...我习惯用这个
Notepadd++ 之前用过,后来被我卸载了。所以没有截图。
4、将改过编码格式的文件导入到数据库中





总结
1、此文档也可以用于使用Dbeaver工具导入数据的新手教程中。
2、如果上述方法导入数据库中还是中文乱码的话,可以试一下在导入数据时,修改Dbeaver工具的Encoding 为UTF8,将原有的短线"-"去掉,如下图。
3、如果导入.sql、.dmp、.json等文件遇到中文乱码问题,上述修改文件编码格式的思路也同样适用。
4、如果上述方法还有乱码的话,可以发评论,一起研究。
之后我还会发布项目实战良心干货,希望可以和网友一起讨论交流,也想留个关注。感谢每一位读者朋友。
2025_6_16