我的工作做了一些流程,例如


将数据从csv加载到MySQL(迁移副本表-来自MSSQL)
读取MySQL数据以制作VO Java类
VO编辑后,将保存到MySQL(另一个表)


问题是 ...


打开CSV文件,我可以看到特殊字符^@
LOAD DATA之后再做SELECT查询,数据不包含^@
但是,我通过Java读取了相同的数据并还原到另一个表中,该表存储\u0000


如何删除此\^0000

在当前情况下最好的解决方案,我想用Java代码处理...

仅供参考


Windows OS上的MSSQL转储(来自客户端)
MySQL在Windows上加载数据(本地开发环境)
执行迁移的程序在CentOS(服务器)上

最佳答案

我相信您的导出会将BIT值转储为实际的“位字符”,即BIT 0变为\0,而BIT 1变为\1

为了方便(和提高速度),您可以使用带有以下设置的univocity-parsers解析CSV:

CsvParserSettings parserSettings = new CsvParserSettings();
parserSettings.setSkipBitsAsWhitespace(false); //prevents treating \0 and \1 as blank space

CsvParser parser = new CsvParser(parserSettings);


然后,可以在出现的列上分别将\0\1替换为字符01

希望这可以帮助。

10-02 10:22