Я хочу заменить некоторые символы utf-8
, заданные другим набором символов utf-8
, но все, что я пытаюсь, в конечном итоге с ошибками.Заменить символы utf8
Я нуб на Python, поэтому запаситесь терпением
То, что я хочу достичь, это преобразование символов по юникоды или HTML сущностей (более читаемым, для Maintanance)
Пытается (с примерами) :
1.First
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Found this function
def multiple_replace(dic, text):
pattern = "|".join(map(re.escape, dic.keys()))
return re.sub(pattern, lambda m: dic[m.group()], text)
text="Larry Wall is ùm© some text"
replace_table = {
u'\x97' : u'\x82' # ù -> é
}
text2=multiple_replace(dic,text)
print text #Expected:Larry Wall is ém© some text
#Got: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
2.html лица
dic = {
"ú" : "é" # ù -> é
}
some_text="Larry Wall is ùm© some text"
some_text2=some_text.encode('ascii', 'xmlcharrefreplace')
some_text2=multiple_replace(dic,some_text2)
print some_text2
#Got:UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 14: ordinal not in range(128)
Любые идеи приветствуются
Что означает символ «UTF-8»? –
Я имел в виду символы, такие как ù, Û, ë, ì и т. Д. Или я что-то упускаю? –
это Python2 или 3? – danielfranca