dbeaver软件使用问题

一、dbeaver导出数据表到csv后数据乱码

按如下方式导出即可

勾选插入BOM即可

Excel在读取csv的时候是通过读取文件头上的bom来识别编码的,如果文件头无bom信息,则默认按照unicode编码读取。这个bom是微软自己定义的一种文件头部协定,存储内容就是标识文件编码的信息,这个BOM 头在被其他的表格展示器(比如 Numbers 或者 Libre Office)打开的时候会被忽略,但对 Excel 就不一样了。我们在生成csv的平台不一定遵循微软的bom协议,导致如果输出非unicode编码的csv文件(例如utf-8),并且没有生成bom信息的话,Excel自动按照unicode编码读取,就会出现乱码问题了。所以只需将非unicode编码的csv文件,用文本编辑器(推荐notepad++)打开并转换为带bom的编码形式(具体编码方式随意),问题解决,变不会乱码。

开发代码层面生成CSV文件,注意设置如下参数:

//代码层面生成csv文件的地方加上如下所示

// 产生 CSV 的过程,body: string[][], header: string[]
const csv = body.reduce((prev, current) => `${prev}\r\n${current}`, header);
const BOM = Buffer.from('\uFEFF');
// 设置BOM头
const bomCsv = Buffer.concat([BOM, Buffer.from(csv)]);
return bomCsv.toString();

 

 

 

原文链接:https://www.daimajiaoliu.com/daima/711d9ef2230f008

posted @ 2022-08-09 14:36  黑水滴  阅读(1663)  评论(0编辑  收藏  举报