繁体   English   中英

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

[英]How to eliminate Windows special character`^@` in java

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

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

问题是 ...

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

如何删除这个\\^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

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM