MySqlBulkLoader 中文乱码
程序员文章站
2022-03-20 13:05:32
MySQL驱动: "MySqlConnector" GitHub地址:https://github.com/mysql net/MySqlConnector.git 文档地址:https://mysql net.github.io/MySqlConnector/ 代码插入之后发现出现中文乱码现象。 ......
mysql驱动:mysqlconnector
github地址:https://github.com/mysql-net/mysqlconnector.git
文档地址:https://mysql-net.github.io/mysqlconnector/
代码插入之后发现出现中文乱码现象。
原来的代码逻辑简略版
实现逻辑梳理,将数组写入csv,通过mysqlbulkloader批量插入
public async task bulkloadlocalcsvfile() { using (var connection = new mysqlconnection(getlocalconnectionstring())) { await connection.openasync(); var path = path.gettempfilename(); mysqlbulkloader bl = new mysqlbulkloader(connection); bl.filename = path; bl.tablename = "test"; bl.fieldterminator = ","; bl.fieldquotationcharacter = '"'; bl.fieldquotationoptional = true; bl.local = true; using (var writer = new streamwriter(path)) { var configuration = new configuration { hasheaderrecord = false, }; using (var csv = new csvwriter(writer, configuration)) { csv.writerecords(datasource); var writerconfiguration = csv.context.writerconfiguration; var map = writerconfiguration.maps.find<t>(); foreach (var membermap in map.membermaps) { var membername = membermap.data.member.name; loader.columns.add(membername); } } } int rowcount = await bl.loadasync(); file.delete(path); } }
分析乱码原因
- 需要指定csv文件的字符集
- 需要指定streamwriter字符集
- 需要指定mysqlbulkloader字符集
指定csv文件的字符集
写csv文件借助的是开源包csvhelper。
csvhelper
- github地址:https://github.com/joshclose/csvhelper
- nuget地址:https://www.nuget.org/packages/csvhelper/12.1.2
指定 csvhelper.configuration.configuration
字符集
var configuration = new configuration { encoding = encoding.utf8 };
没能解决。
指定streamwriter字符集
var writer = new streamwriter(path, true, encoding.utf8)
不行。
指定mysqlbulkloader字符集
bl.characterset = "utf8";
乱码解决。
上一篇: 【转载】C#中List集合使用Last方法获取最后一个元素
下一篇: ARTS 第一周打卡
推荐阅读
-
Pix4Dmapper4怎么激活?Pix4Dmapper V4中文免狗版安装激活教程(附下载)
-
Axure RP8中文本框怎么添加提示信息?
-
vs2010 中文版下载地址及可用CDKEY 多个地址打包下载
-
VS2010破解版迅雷电驴下载 visual studio2010简体中文正式旗舰版破解版下载(附序列号)
-
搜狗输入法无法使用不能输入中文该怎么办?
-
影子系统(PowerShadow)中文破解版的安装使用详细图文步骤以及注册码
-
SecureCRT中文显示乱码问题的解决方法
-
imazing for windows(ios设备管理软件)中文特别版安装教程+激活步骤
-
PHP中文URL编解码(urlencode()rawurlencode()
-
php生成二维码时出现中文乱码的解决方法