英语的 8 位类似 ASCII 的字符集是什么0x9d
有意义吗?
我正在清理一些旧的数据文件,偶尔会发现0x9d
在其他 ASCII 文本中。 (不,这不是 UTF-8。)
它在 Windows-1252 中无效。 Python“latin-1”编解码器将其转换为 Unicode 0x9D,即《操作系统命令》。这没什么意义。在 Unicode 中,您会得到一个带有 [009d] 的框。 (在 Python 中,您可以将任何内容转换为 Latin-1 而不会引发错误,但这并不意味着这样做是有意义的。)
示例,使用 Python 类型转义,来自我正在清理的混乱数据库,该数据库组合了来自多个来源的文本:
Guitar Pro, JamPlay, RedBana\\\'s Audition,\x9d Doppleganger\x99s The Lounge\x9d or Heatwave Interactive\x99s Platinum Life Country,\\"
for example \\"I\\\'ve seen the bull run in Pamplona, Spain\x9d.\\" Everything
Netwise Depot is a \\"One Stop Web Shop\\"\x9d that provides sustainable \\"green\\"\x9d living
are looking for a \\"Do It for Me\\"\x9d solution
从上下文来看,我怀疑是 ™ 或 ®。但是什么 8 位代码有这些呢?
这是一个完全疯狂的假设:
一些之前处理此数据的(确实损坏的)系统尝试将每个字符写入 UTF-8,但实际上只写入每个序列的最后一个字节(也许它在某处有一个奇怪的单字节长缓冲区)。或者,过去它是 UTF-8 格式的,但有人以不同的编码查看它,进行了搜索和替换以删除字节 0xE2 0x80,因为它们显然“不属于”并且没有意识到剩余的“ “特殊角色”也不是他们想要的。
当然,ASCII 会被传递,因为它的 UTF-8 编码将是一个字节长。
“右单引号”(U+2019)’
以 UTF-8 编码,字节为 0xE2 0x80 0x99。你所拥有的地方\x99s
这就是让我走上这条路的原因,因为在流行的文字处理软件中,s 之前的撇号通常会被翻译为右弯引号。如果仅保存字符的最后一个字节,则那里只会有 0x99。
“右双引号”(U+201D)”
以 UTF-8 编码,字节为 0xE2 0x80 0x9D。文本中的 0x9D 通常位于双引号字符串的末尾。而且,它通常就在常规直道旁边"
双引号。我想知道是否有人尝试对数据进行某种事先清理,并设法放回结束引用,但将“奇怪的”0x9D 留在了那里。
正如我所说,这是一个疯狂的假设,但如果这是来自各种旧系统的数据的集合,那么很难知道它到底发生了什么。 UTF-8 的最后一个字节只是我能找到的最接近的“正常”英语编码,它在英语文本中具有合理的内容,并且包含您正在寻找的字节。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)