我的任务是将非常旧的文本文件(逗号分隔表)转换为 UTF-8 JSON。该文件包含合法 UTF-8 和非法数据的奇怪组合。有很多正确的2-byte
字符3-byte
(带有0x1110xxxx
一种长度前缀),大多数数据是 ASCII 范围32-127
。非法字节样本是164, 188, 166, 178, 162, 180, 182, 170
.
这是否意味着我要处理必须解密的自定义编码,或者这可能是某种记录在案的编码?或者我对 UTF-8 编码的理解不正确?有什么见解吗?
我觉得这是 UTF-8 和一些旧代码页的混合。
样品 1
22 2C 22 61 62 61 64 64 68 61 A2 22
这应该是引号中的“abaddhaṃ”一词,但正如您所见,“ṃ”是 A2
样本 2几个字节后看起来像奇怪编码中的同一个词
22 83 E0 86 E0 83 E0 8B E0 8B E0 93 E0 83 E0 B4 E0 22
样本 3几个字节后似乎是有效的 UTF-8:
EE 83 93 EE 82 97 │ EE 82 B2 EE 82 83