java - 解析内容中的封装器未正确转义的 CSV 文件

标签 java excel apache csv apache-commons

您好,我有一个 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/

相关文章:

php - 寻找用于 windows 的 SMTP 服务器

java - LuaJ (Java) 编译成jar

java - 为什么我的计算多个整数的最大公约数的代码没有返回任何内容?

java - "RegionCacheAdapter Unable to clear cache. Failed on region null. Last key null null"

vba - 重新打开的 .csv 文件更改了 0.000E+00 数字格式的值

mysql - Apache dbd 内部错误 : AH00629: Can't connect to mysql

java - org.springframework.transaction.annotation.Transactional 与 javax.jdo.annotations.Transactional

VBA如何在子程序之间使用变量?

excel - 包含逗号字符的数据验证

php - 在 PHP/Apache/Linux 环境中,为什么 chmod 777 是危险的?