我正在Websters Unabridged Dictionary上做一些文本处理,遇到了一些不符合我所知道的任何标准的转义序列(即,它们不是HTML、CSS、Unicode等转义序列)
一些示例文本:
<h1>Galore</h1>
<Xpage=610>
<hw>Ga*lore"</hw> <tt>(?)</tt>, <tt>n. & a.</tt> <ety>[Scot. <ets>gelore</ets>, <ets>gilore</ets>, <ets>galore</ets>, fr. <ets>Gael</ets>. <ets>gu le\'95r</ets>, enough; <ets>gu-</ets> to, also an adverbial prefix + <ets>le\'95r</ets>, <ets>le\'95ir</ets>, enough; or fr. Ir. <ets>goleor</ets>, the same word.]</ety> <def>Plenty; abundance; in abundance.</def>
它们都是\'xy
形式,其中x
、y
是[0-9]
中的任何数字或[a-f]
中的任何字母。显然,它们在形式上与RTF escape sequences一致。然而,他们应该代表的字符是远远不够的正确
对于出现在我想要的数据中的那些,我发现:
{
"\'80": "Ç",
"\'81": "ü",
"\'82": "é",
"\'83": "â",
"\'84": "ä",
"\'85": "à",
"\'86": "å",
"\'87": "ç",
"\'88": "ê",
"\'89": "ë",
"\'90": "É",
"\'91": "æ",
"\'92": "Æ",
"\'93": "ô",
"\'94": "ö",
"\'95": "ò",
"\'96": "û",
"\'97": "ù"
}
起初我认为这可能是一个简单的环绕错误(每个hexvaluexy
的关闭量是相同的),但是通过查看ç
和ö
并将它们的偏移量与正确的值进行比较,或者注意到如果Ç
是\'80
,那么ü
应该是\'b5
,这是不正确的
为了完整性,我在regex r"\\\'[\d\w]{2,2}"
(总共74个)中找到的所有值都是:
\'3c
\'3e
\'80
\'81
\'82
\'83
\'84
\'85
\'86
\'87
\'88
\'89
\'8a
\'8b
\'8c
\'8d
\'90
\'91
\'92
\'93
\'94
\'95
\'96
\'97
\'9a
\'9c
\'a0
\'a1
\'a2
\'a3
\'a4
\'a6
\'a7
\'ab
\'ac
\'b5
\'b6
\'b7
\'b8
\'bd
\'be
\'bf
\'c3
\'c5
\'c6
\'c7
\'c8
\'c9
\'cb
\'cc
\'ce
\'cf
\'d0
\'d1
\'d2
\'d3
\'d4
\'d6
\'dc
\'dd
\'de
\'df
\'dh
\'eb
\'ed
\'ee
\'ef
\'f0
\'f4
\'f5
\'f6
\'f7
\'f8
\'fb
有人能告诉我这些逃逸序列遵循什么标准吗?一个链接到一个表或一个库,将他们转换成Unicode将不胜感激
编辑
进一步处理显示:
{
"\'d1": "Œ",
"\'d2": "œ",
"\'ee": "ã"
}
不幸的是,似乎当\'80 - \'a5
中的字符符合IBM codepage 437时,创建文档的人已经决定对不是原始编码的字符使用自定义映射,唉
目前没有回答
相关问题 更多 >
编程相关推荐