您好,我有一个 CSV 文件,其中封装字符未正确转义。
例子
uerf@einf.erf,"uhrege gerjhhg er<span style="background-color: rgb(0,153,0);">eriueiru kernger</span><font color="#009900"><span style="background-color: rgb(255,255,255);"> weiufhuweifbw fhew fibwefbw</span></font><div><font color="#009900"><span style="background-color: rgb(255,255,255);">wekifbwe fewf</span></font></div><div><font color="#009900"><span style="background-color: rgb(255,255,255);">weiuifgewbfjew f</span></font></div>",18-Oct-2016,
分隔符 -> ,
封装器 -> "
当我尝试使用 commons-csv reader 阅读时它中断了,
抛出“封装 token 和定界符之间的无效字符
”异常。
但是 Microsoft excel 似乎可以完美地打开文件。 关于如何进行的任何想法? .
如何解析封装器未正确转义的 CSV 文件?Excel 似乎可以正常打开此类文件。
最佳答案
如果您无法在源头解决此问题(即生成格式正确的 csv),并且您想自己解析它,则可以采用简单的方法:
扫描 field1 到 ,"
- field2 到 ",
- 其余是 field3(尾随逗号?)。
当然,如果 ",
出现在 html 字段中,那就有问题了。您可以通过首先扫描到 ,"
,然后向后扫描(开始在行尾)到 ",
.
如果字段比此处显示的多,您可以查找 ,
与 "
的组合(两种组合,也可以是 ","
) 并希望这些不会出现在字段数据中。
关于java - 解析内容中的封装器未正确转义的 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41424389/