У меня в Linux установлен раздел NTFS. Из-за разницы в кодировке все символы Юникода в именах файлов повреждены. Например. 新建文件夹 (новая папка на китайском языке) отображается как \320½\250\316ļ\376\274\320/.
Я не могу изменить параметр монтирования, поэтому хочу написать сценарий Python, чтобы получить правильное имя файла.
Вот что я попробовал (все еще используя Пример 新建文件夹):
Код: Выделить всё
>>> import os
>>> os.listdir('.')[-1]
'\udcd0½\udca8\udcceļ\udcfe\udcbc\udcd0'
>>> os.listdir(b'.')[-1]
b'\xd0\xc2\xbd\xa8\xce\xc4\xbc\xfe\xbc\xd0'
>>> os.listdir(b'.')[-1].decode('utf-16')
'싐ꢽ쓎ﺼ킼'
Вывод по-прежнему представляет собой неработающий текст. Я также пробовал utf_16_be и utf_16_le, но они не работают. Каким должен быть правильный способ получить правильные имена файлов NTFS с символами Юникода в Linux? Любые комментарии или отзывы приветствуются. Спасибо!
Подробнее здесь:
https://stackoverflow.com/questions/769 ... s-in-linux