Замена специфических символов на обычную латиницу

Есть ссылки они открываются нормально в wikipedia. Но для работы мне нужно получить название, заменив специальные символы с символами соответствующими английскому языку

Bill_Skarsg%C3%A5rd

введите сюда описание изображения


Ответы (2 шт):

Автор решения: AndroID

Можете использовать эту программу. Для добавления спец. символов можно их скопировать из Microsoft Word в меню вставки символа.

special_chars = (
    ("à", "a"),
    ("á", "a"),
    ("â", "a"),
    ("ã", "a"),
    ("ä", "a"),
    ("å", "a"),
    ("ç", "c"),
    ("è", "e"),
    ("é", "e"),
    ("ê", "e"),
    ("ë", "e"),
    ("ì", "i"),
    ("í", "i"),
    ("î", "i"),
    ("ï", "i"),
    ("ñ", "n"),
    ("ò", "o"),
    ("ó", "o"),
    ("ô", "o"),
    ("õ", "o"),
    ("ö", "o"),
    ("ø", "o"),
    ("ù", "u"),
    ("ú", "u"),
    ("û", "u"),
    ("ü", "u"),
    ("ý", "y"),
    ("ÿ" "y")
)

def translate(s):
    for special_char, char in special_chars :
        s = s.replace(special_char, char).replace(special_char.upper(), char.upper())
    return s

print(translate("Björk Ätêst"))
# Bjork Atest

Здесь не все спец. символы - только те, что имеют альтернативу в латинском алфавите.

→ Ссылка
Автор решения: alex

%C3%A5 это символ å закодированный в процентную кодировку для декодирования в пайтон есть функция unquote из модуля urllib.parse. Если кодировка UTF-8, то проблем в остальном не возникнет.

from urllib.parse import unquote

i = "Bill_Skarsg%C3%A5rd"

print(unquote(i))
# Bill_Skarsgård

А вот если вам нужна ASCII. Тогда можно произвести нормализацию и фильтрацию строки, чтобы избавиться от всех модификаторов.

import unicodedata
from urllib.parse import unquote

i = "Bill_Skarsg%C3%A5rd"

unquoted = unquote(i)
norm_text = unicodedata.normalize('NFD', unquoted)
shaved = ''.join(x for x in norm_text if not unicodedata.combining(x))
print(unicodedata.normalize('NFC', shaved))
# Bill_Skarsgard

Пример взят из книги "Python. К вершинам мастерства" автор Лучано Ромальо. Страницы 151-152.

Там есть важное дополнение, поэтому рекомендую ознакомиться.

→ Ссылка