Windows中的文件路径编码

时间:2012-12-22 13:51:16

标签: python windows

我正在编写一个小应用程序,它将文件路径保存到数据库中(使用django)。我假设文件路径是utf-8编码的,但我遇到了以下文件名:C:\FXG™.nfo,显然没有用utf-8编码。

当我filepath.decode('utf-8')时,我收到以下错误:

  

UnicodeDecodeError:'utf8'编解码器无法解码位置30中的字节0x99:无效的起始字节

(我修剪了文件名,所以这里的位置是错误的。)

我如何知道文件路径的编码方式是否适用于每个文件名?

1 个答案:

答案 0 :(得分:1)

使用sys.getfilesystemencoding()

这应该允许您转换所有看起来正常的路径。

但是,总会存在非法编码的文件或文件夹,您必须考虑如何处理应用程序框架中的文件或文件夹。

有些应用可能会忽略此类文件,有些应用会将名称保留为二进制blob。