#python #html #decode #encode #ironpython
Вопрос:
В этот момент я в замешательстве. Я пытаюсь расшифровать какой-то тест в кодировке HTML, а затем разделить его на символ. Однако кодировка, которую я получаю, html.parse.unescape
делает это невозможным.
Единственный раз, когда он отформатирован «правильно», это когда я печатаю результаты, __repr__
и __str__
оба они в этом закодированном формате.
Вот образец:
import html.parser
raw_str = '10:20amamp;nbsp;amp;ndash;amp;nbsp;12:10pm'
decoded_str = html.parser.unescape(raw_str)
print(decoded_str)
print(decoded_str.split('-'))
Выход:
10:20am – 12:10pm
['10:20amxa0–xa012:10pm']
Выходные данные показывают, что decoded_str
разделяется не так, как я ожидал, и что присутствуют закодированные символы. Если мы проверим тип этого значения, мы получим следующее:
>>> type(decoded_str)
<class 'str'>
decoded_str
предположительно это строка, и я смотрю на -
символ в середине, но он отказывается разделяться, и эти закодированные символы вызывают всевозможные проблемы. Последнее замечание, я считаю, что, хотя -
символ отображается в приведенном выше примере, на самом деле он расшифровывается на u2013
основе моих результатов из экземпляра IronPython.
Комментарии:
1. Этот символ представляет собой n-тире, а не обычный символ тире ASCII.
2. Используйте
chr(8211)
вместо'-'