Здравствуйте! Помогите, пожалуйста. Я еще совсем новичок в Питоне.
Нужно создать транслитератор с кириллицы на латиницу.
Однако я добавляю новые символы в алфавит, разные диакритические знаки. У меня возникает ошибка, связанная с кодировкой. Как ее исправить?
Traceback (most recent call last):
File "C:\Users\Лариса\Desktop\Фото и документы\Математика и инфа\module.py", line 56, in <module>
print(latinizator(line, legend), end='')
File "C:\Users\Лариса\AppData\Local\Programs\Python\Python36-32\lib\encodings\cp1251.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\xed' in position 18: character maps to <undefined>
Вот мой код. Количество знаков сокращено, чтобы выглядело короче.
import os
import fileinput
def latinizator(letter, dic):
for i, j in dic.items():
letter = letter.replace(i, j)
return letter
legend = {
'Ё':'Ö',
'Ж':'Ž',
'З':'Z',
'И':'I',
'Й':'Î',
'Ч':'Č',
'Ш':'Š',
'Щ':'Ś',
'Ъ':'V',
'Ы':'Y',
'Ь':'V',
'Э':'E',
'Ю':'Ü',
'Я':'Ä',
#Дополнительные знаки
'ий':'í',
'ую':'ú',
'ой':'ó',
'ей':'é',
'ая':'á',
'ть':'ć',
}
with fileinput.FileInput('C:\\Users\\Лариса\\Desktop\\Фото и документы\\Математика и инфа\\alphabet.txt', inplace=True, backup='.bak') as f:
for line in f:
print(latinizator(line, legend), end='')