字符编码与输入安全:UTF - 8 及 HTML 处理指南
1. 字符编码概述
在文本交流中,字符编码至关重要。多年来,美国人使用 ASCII 字符集交换文本,由于美国的大多数系统都支持 ASCII,这使得英语文本的交换变得容易。然而,ASCII 完全不足以处理几乎所有其他语言的字符。不同国家采用了不同的技术来交换不同语言的文本,这在日益互联的世界中增加了数据交换的难度。
为了解决这个问题,ISO 开发了 ISO 10646,即“通用多字节编码字符集(UCS)”。UCS 为世界上的每个字符定义了一个 31 位的值。UCS 的前 65536 个字符(可以用 16 位表示)被称为“基本多语言平面(BMP)”,旨在涵盖当今几乎所有的口语语言。Unicode 论坛开发了 Unicode 标准,专注于 UCS 并添加了一些额外的约定以促进互操作性。历史上,Unicode 和 ISO 10646 由竞争团体开发,但现在它们相互协作。
如果编写处理国际化字符的新软件,应该以 ISO 10646/Unicode 为基础。但在处理旧文档时,要确保不可信用户无法控制文档的字符集设置,因为这会显著影响文档的解释。
2. UTF - 8 介绍
大多数软件并非为处理 16 位或 32 位字符而设计,但创建通用字符集需要超过 8 位。因此,开发了一种名为“UTF - 8”的特殊格式,以便现有程序和库更轻松地处理潜在的国际字符。UTF - 8 在 IETF RFC 2279 等文档中进行了定义,是一个可以自由阅读和使用的明确标准。
UTF - 8 是一种可变宽度编码:
- 编号为 0 到 0x7f(127)的字符编码为其自身的单字节。
超级会员免费看
订阅专栏 解锁全文
1333

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



