У меня есть файл, который называется: Abrázame.txt
Я хочу расшифровать это так, чтобы python понимал, что это за символ 'á', чтобы он выводил мне Abrázame.txt
Это следующий код, который у меня есть в Scratch-файле:
import os
s = os.path.join(r'C:\Test\AutoTest', os.listdir(r'C:\\Test\\AutoTest')[0])
print(unicode(s.decode(encoding='utf-16', errors='strict')))
Ошибка, которую я получаю выше:
Traceback (most recent call last):
File "C:/Users/naythan_onfri/.PyCharmCE2017.2/config/scratches/scratch_3.py", line 12, in <module>
print(unicode(s.decode(encoding='utf-16', errors='strict')))
File "C:\Python27\lib\encodings\utf_16.py", line 16, in decode
return codecs.utf_16_decode(input, errors, True)
UnicodeDecodeError: 'utf16' codec can't decode byte 0x74 in position 28: truncated data
Я посмотрел набор символов utf-16 ив нем действительно есть характер «а».Так почему же эту строку нельзя декодировать с помощью Utf-16.
Также я знаю, что 'latin-1' будет работать и производить строку, которую я ищу, однако, поскольку это для проекта автоматизации, и я хочучтобы гарантировать, что любое имя файла с любым зарегистрированным символом может быть декодировано и использовано для других целей в проекте, например:
"Открытие проводника по файлу в каталоге файла с уже выбранным файлом."
Проходит ли цикл по каждому из кодеков (заметьте, я верю, что существует 93 кодека), чтобы найти, какой из них можно декодировать, наилучший способ получения результата, который я ищу?Я полагаю, что есть нечто гораздо лучшее, чем это решение.