繁体   English   中英

您如何在不丢失奇数字符的情况下阅读文本文件?

[英]How do you read a text file without losing odd characters?

我想使用System.IO.File.ReadAllLines将文本文件读取为字符串数组。 但是,ReadAllLines会在文件中删除一些我想保留的奇数字符,例如chr(187)。 我尝试了一些不同的编码选项,但这无济于事,而且我看不到“不编码”的选项。

我可以使用FileOpen和LineInput读取文件而无需进行修改,但这要慢很多。 使用FileSystemObject也可以正常工作,但我宁愿不使用它。

在.net中无需修改就可以将文本文件读入字符串数组的最佳方法是什么?

没有“不编码”这样的概念。 必须找出正确的编码,否则可能无法正确解释数据。

当您说“ chr(187)”时,您指的是Unicode字符?

您可能想尝试一些编码:

  • Encoding.Default-系统默认编码
  • Encoding.GetEncoding(28591)-ISO-Latin-1
  • Encoding.UTF8-在现代文件中非常常见

听起来您想读取原始字节。

使用File.ReadAllBytes可以将它们读取到数组中(不要对大文件执行此操作),或者使用FileStream读取字节块。

被删除的字符在文件的开头。 事实证明,它们是UTF-8的字节顺序标记。 File.ReadAllLines和File.ReadAllText去除字节顺序标记,而LineInput和FileSystemObject函数则不去除。

如果我在问题中解释了奇数字符位于文件开头,我想我会很快得到答案。 对于我提出的问题,我会给Jon Skeet最好的答案。

暂无
暂无

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

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