Какой стандарт используют эти escape-последовательности обратной косой черты? - PullRequest
2 голосов
/ 04 июня 2019

Я выполняю некоторую обработку текста на Unabridged Dictionary Вебстера и натолкнулся на некоторые escape-последовательности, которые не соответствуют никаким стандартам (то есть, они не являются escape-последовательностями 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]. Ясно, что они согласуются по форме с escape-последовательностями RTF . Однако символы, которые они должны представлять, далеко не правильные.

Для тех, которые появляются в данных, которые я хочу, я понял, что:

{
   "\'80": "Ç",
   "\'81": "ü",
   "\'82": "é",
   "\'83": "â",
   "\'84": "ä",
   "\'85": "à",
   "\'86": "å",
   "\'87": "ç",
   "\'88": "ê",
   "\'89": "ë",
   "\'90": "É",
   "\'91": "æ",
   "\'92": "Æ",
   "\'93": "ô",
   "\'94": "ö",
   "\'95": "ò",
   "\'96": "û",
   "\'97": "ù"
}

Сначала я подумал, что, возможно, это была простая ошибка перехода (каждое шестнадцатеричное значение xy выключено на одну и ту же величину), но это не так, если посмотреть на ç и ö и сравнить их смещение к правильным значениям или отметив, что если Ç равно \'80, то ü должно быть \'b5.

Для полноты, все значения, которые я нашел с помощью регулярного выражения 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

Может кто-нибудь сказать мне, какому стандарту соответствуют эти escape-последовательности? Буду признателен за ссылку на таблицу или библиотеку, которая преобразует их в Unicode.


EDIT

Дальнейшая обработка показала, что:

{
   "\'d1": "Œ",
   "\'d2": "œ",
   "\'ee": "ã"
}

К сожалению, кажется, что, хотя символы в \'80 - \'a5 соответствуют кодовой странице IBM 437 , кто бы ни сделал документ, он решил использовать пользовательское отображение для символов, не входящих в оригинальную кодировку, увы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...