如何在java中消除Windows特殊字符`^ @`

时间:2018-01-15 02:23:53

标签: java mysql sql-server windows csv

我的工作正在做一些像

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

问题是......

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

如何删除此\^0000

目前情况下的最佳解决方案,我想用java代码处理......

仅供参考,

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

1 个答案:

答案 0 :(得分:0)

我相信您的导出会将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

希望这有帮助。