【发布时间】:2019-04-30 00:28:42
【问题描述】:
我正在考虑编写一个小编译器。作为其中的一部分,我需要为预处理等事情编写一些自定义流。我正在考虑从 StreamReader 继承。
使用 StreamReader 类,您可以指定要使用的编码。 Peek 和 Read 函数返回一个整数值。我需要知道如何将这些整数值转换为基于此 CurrentEncoding 的字符 - 并且有效。
谢谢!
【问题讨论】:
-
@vladimir StringReader 将字符串作为其输入。我希望能够将流嵌套在一起。例如文件流 -> 预处理器流 -> 标记器流
-
如果我正确理解the source code of StreamReader,您不应该关心编码,因为 StreamReader 仅通过 char 数组进行操作(换句话说,只是 UTF 16 编码)。您只需将 int 转换为 char:“var ch = (char)int_value”。
-
我会试试看的。我在这个项目中使用 VB.NET,所以看起来有一个 ChrW() 函数可以将整数转换为 Unicode。目前尚不清楚,但是否可以处理任何和所有编码 - 因为不同的 Unicode 编码对事物进行不同的编码......
-
StreamReader 可以接受文本文件 differently encodes(如 Big/Little Endian Unicode、UTF8 等),但将内容存储为 char (UTF16) 的数组。
-
@vladimir 啊,我明白了。能够窥视源代码非常有帮助。如果您提交答案,我会接受。谢谢:)
标签: .net character-encoding stream