.NET 文本处理:编码、读写器及最佳实践
1. 文本表示的多样性
在处理文本时,我们会遇到多种表示方式。首先是行尾的表示,不同系统有不同的约定:
- Windows 和许多互联网标准(如 HTTP)通常使用两个字节,值分别为 13 和 10。
- Unix 类系统则常使用单个值为 10 的字节。
字符编码也多种多样,常见的有单字节、双字节和可变长度编码。例如,在文本文件中遇到字节值 163 时,其含义取决于所使用的编码:
| 编码 | 字节值 163 代表的字符 |
| ---- | ---- |
| Windows - 1252 | £(英镑符号) |
| ISO/IEC 8859 - 5 | Ђ(西里尔大写字母 DJE) |
| UTF - 8 | 仅作为多字节序列的一部分 |
2. .NET 中的文本抽象类:TextReader 和 TextWriter
为了简化文本处理,.NET 定义了 TextReader 和 TextWriter 抽象类,它们将数据表示为 char 值序列,逻辑上类似于流,但元素是 char 而非 byte 。
2.1 读写分离的设计
与 Stream 不同, TextReader 和 TextWriter 是分开的抽象。这是因为可变长度编码使得随机写入访问变得困难。例如,将一
超级会员免费看
订阅专栏 解锁全文

511

被折叠的 条评论
为什么被折叠?



