преобразование html + шестнадцатеричного адреса электронной почты в читаемую строку Python 3 - PullRequest
0 голосов
/ 23 февраля 2019

Я пытался найти онлайн-конвертер или функцию Python3 для преобразования адресов электронной почты в формате html + hex, например:% 69% 6efo ---> info

%69 : i
%6e : n
&#64 : @
(source: http://www.asciitable.com/)

... и т. д. *

Все следующие сайты не преобразуют ни шестнадцатеричные, ни HTML-коды, объединенные в "слово":

https://www.motobit.com/util/charset-codepage-conversion.asp
https://www.binaryhexconverter.com/ascii-text-to-binary-converter
https://www.dcode.fr/ascii-code
http://www.unit-conversion.info/texttools/ascii/
https://mothereff.in/binary-ascii

Буду признателен за любые рекомендации.Txs.

1 Ответ

0 голосов
/ 23 февраля 2019

Попробуйте html.unescape() или HTMLParser#unescape, в зависимости от того, какую версию Python вы используете: https://stackoverflow.com/a/2087433/2675670

Поскольку это смесь шестнадцатеричных значений и обычных символов, я думаю, что нам нужно придуматьс пользовательским решением:

word = "%69%6efo"

while word.find("%") >= 0:
    index = word.find("%")
    ascii_value = word[index+1:index+3]
    hex_value = int(ascii_value, 16)
    letter = chr(hex_value)
    word = word.replace(word[index:index+3], letter)

print(word)

Возможно, есть более обтекаемый «Pythonic» способ сделать это, но он работает для тестового ввода.

...