Image

Categories:

Кодировка файловой системы

Коллеги, подскажите пожалуйста способы определения кодировки файловой системы (если они существуют).

Задача:
В переменную path я получаю путь, уже преобразованный во внутренний Unicode.
Потенциально в пути содержатся русские буквы.
Перед тем как открыть файл в win32 я пишу: path = path.encode("cp1251").
Если это будет *nix, то вполне возможно, что следует писать: path = path.encode("koi8-r").

Самым тупым способом может быть следующий:
if sys.platform.startswith("win"):
    path = path.encode("cp1251")
elif sys.platform.startswith("linux"):
    path = path.encode("koi8-r")
#... и так далее ...
Но ведь не факт, что под *nix будет KOI8-R, несмотря на то, что это исторический стандарт.

Вопрос в том, есть ли способ определить кодировку файловой системы не отталкиваясь от платформы?

P.S.: Где-то я определённо торможу. Подскажите где именно =)

UPDATE: Победитель конкурса Imagekolbusa с подсказкой os.path.supports_unicode_filenames = True =)
Спасибо за ваши ответы!