【问题标题】:Convert Integer -> Char for a given Encoding为给定的编码转换整数 -> 字符
【发布时间】: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


【解决方案1】:

StreamReader 可以接受文本文件 differently encodes(例如 Big/Little Endian Unicode、UTF8 等),但将内容存储为 char (UTF16) 的数组。

所以只需将 int 转换为 char:

var ch = (char)int_value;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多