4

我的专有文本编码使用所有 256 字节值,较低的 128 字节值与 ascii 基本相同(重要的东西,即控制字符、空格、换行符都完全相同)。我希望能够在 C# .NET 中将这个文件作为字节读取,并且仍然保持逐行读取它并对其进行正则表达式搜索的能力。在 C# .NET 中执行此操作的最佳方法是什么?

我意识到,如果我的编码只使用前 128 字节值,这将很简单。我只是不希望较高的字符意外转换为 unicode 值。

4

2 回答 2

4

听起来您只想实现自己的Encoding. 这样做相当简单,然后你可以将它传递给StreamReader构造函数(或File.OpenText等)。

如果您查看我(多年前)编写的用于处理 EBCDIC 的代码,您应该能够将其用作合理的起点。

顺便说一句,与 ASCII 的重叠似乎与此无关。

我只是不希望较高的字符意外转换为 unicode 值。

每当您将任何二进制数据转换为文本时,您都在转换为 Unicode 值。这就是.NET 中文本的定义方式。

于 2012-10-25T11:40:45.227 回答
-2

您可以在 strem 阅读器中读取文件,如下所示:

StreamReader sr = new StreamReader("C:\\Details.txt", ASCIIEncoding.ASCII);
于 2012-10-25T11:50:09.407 回答