CSV 文件中的 ASP.NET 智能引号解析问题

Posted

技术标签:

【中文标题】CSV 文件中的 ASP.NET 智能引号解析问题【英文标题】:ASP.NET Smart quotes parsing issue in a CSV file 【发布时间】:2011-08-08 21:39:06 【问题描述】:

我一直在开发的 ASP.NET 应用程序可以愉快地解析常规引号和符号。除了使用 MS Excel 创建的 CSV 文件中的智能引号。

以下是我使用的代码:

for (int i = 0; i < ds.Tables["Comments"].Rows.Count; i++) 
value = ParseSmartQuotes(ds.Tables["Comments"].Rows[i][col.FieldName].ToString());

ParseSmartQuotes 方法中,我尝试了很多东西。其中一些包括:

replace MSWord smart quotes in asp.net webform

C# How to replace Microsoft's Smart Quotes with straight quotation marks?

非常感谢用常规引号替换智能引号(或)在网页中显示智能引号的解决方案。

【问题讨论】:

***.com/questions/334850/…的可能重复 试过了,但似乎对我不起作用(我已在问题中附加了该线程作为我尝试过的线程)。 【参考方案1】:

您的解析代码不应被智能引号混淆。解析器应该只寻找 ASCII 引号作为分隔符;智能引号应被视为内容——而不是分隔符——并以 Unicode 格式存储。

您的解析器是从头开始编写的吗?如果是这样,为什么?有一个high-quality CSV reader 可用,对我来说效果很好。它对智能引号没有任何特殊处理,但它处理 Unicode。

【讨论】:

【参考方案2】:

第二个链接中的一个回复提到了对文本进行 html 编码。你试过吗?这是链接:

http://msdn.microsoft.com/en-us/library/73z22y6h.aspx

【讨论】:

结果如何?您遇到过哪些问题?

以上是关于CSV 文件中的 ASP.NET 智能引号解析问题的主要内容,如果未能解决你的问题,请参考以下文章

Access 解析 CSV 文件中的双引号的问题

Boost tokenizer 无法解析具有双引号字段的 csv 文件

Clojure CSV 解析引号中的逗号

CSV 解析包含双引号和逗号的字符串

Clojure 中的 CSV 解析器需要避免引号中的逗号

在某些情况下使用双引号解析 CSV