在C#中使用File.ReadAllLines时,如何在开头摆脱特殊字符

时间:2010-01-25 08:08:22

标签: c# file

我尝试string[] file = File.ReadAllLines(file_name)来读取word文件。

在调试模式下,我发现字符串数组文件的前几个参数的值为

"��ࡱ�0\0\0\0>\0\0��\t\0\0\0\0\0"。我怎么能摆脱这个。

在某些文件中,文件[]的前3个参数用这些填充,而对于少数文件,只有第一个参数填充了这些不可用的字符。

问题是什么?如何摆脱这个问题?但我的word文件开头甚至没有空行。

4 个答案:

答案 0 :(得分:3)

问题是您没有使用正确的编码打开文件。 Here是从C#打开和创建Word文档的指南。

答案 1 :(得分:2)

File.ReadAllLines适用于文本文件。 Word文件是文本文件。要阅读Word文件,您可能需要一个库。

答案 2 :(得分:1)

如果您使用的是.NET 3.5,那么我建议您使用LINQ where子句只返回您感兴趣的行。

string[] file = File.ReadAllLines(file_name).Where(line => !line.StartsWith("��")).ToArray();

您也可以使用某种形式的正则表达式而不是line.StartsWith()方法。

注意:如果您正在阅读Microsoft Office Word文件,我建议您使用COM Interop或第三方库来阅读MS Word文档(您会发现它比尝试更容易自己解析文件。)

答案 3 :(得分:1)

Word文件不是简单的文本文件,因此会嵌入额外的二进制信息。

如果要正确提取文本而不是File.ReadAllLines,则应使用可读取word文档的库。

以下是此couplelibraries