70、.NET 文本处理:编码、读写器及最佳实践

.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 是分开的抽象。这是因为可变长度编码使得随机写入访问变得困难。例如,将一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值