字符编码与数据处理:挑战与解决方案
1. 字符编码概述
字符编码问题与数据处理密切相关。尽管文本格式的字符编码问题与大部分数据处理问题有所不同,但读取文本文件内容是处理其中数据的关键步骤,因此有必要探讨可能出现的问题。
早期的字符编码标准如 ASCII(美国信息交换标准代码)诞生于 20 世纪 60 年代,它仅考虑了英语文本中使用的字符,包括大小写字母、基本标点、数字以及一些特殊或控制字符。由于只需 128 个位置就能容纳这些符号,所以 ASCII 标准仅定义了高序位为 0 的 8 位字节的值,高序位为 1 的字节不是 ASCII 字符。
为了扩展 ASCII 标准,ISO - 8859 字符编码应运而生。这些编码主要用于覆盖(大致)音素字母表中的字符,尤其是欧洲语言的字符。许多字母语言基于罗马字母,但添加了英语中未使用的各种变音符号。ISO - 8859 系列编码保留了 ASCII 的低序位值,并使用每个字节的高序位来编码额外的字符。然而,由于一个字节总共 256 个值中只有 128 个额外值,不足以容纳所有不同的额外字符,因此该系列的特定成员(如用于阿拉伯语的 ISO - 8859 - 6)以不兼容的方式使用高序位值,导致该系列中的各种编码虽然都能表示英语文本,但彼此之间相互不兼容。
对于中文、日语和韩语(CJK)等语言,所需的字符数量远远超过 256 个,因此单字节编码不适合表示这些语言。为这些语言创建的大多数编码每个字符使用 2 个字节,有些甚至是可变长度的。而且,不仅不同语言有许多不兼容的编码,即使在同一种语言中也是如此。例如,EUC - JP、SHIFT_JIS 和 ISO - 2022 - JP 都是用于表示日语文本的编码,但它们彼此不兼容。 <
超级会员免费看
订阅专栏 解锁全文

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



