Windows システム、Vista、および Windows 7 で NTFS ファイル システムを使用してフォルダーを作成したいと考えています。フォルダーには、「förjävligt」などの文字 å、ä および/または ö が含まれる場合があります。
Python ファイルとその中のすべての文字列は現在 UTF-8 ですが、Windows ファイル システムに合わせて変換するにはどうすればよいですか?
通常のPython2文字列を使用している場合は、それらをUnicodeに変換するだけです。
# -*- coding: utf-8 -*-
normalString = "äöü"
# Now convert to unicode. Specified encoding must match the file encoding
# in this example. In general, you must specify how the bytes-only string
# contained in "normalString" is encoded.
unicodeString = unicode(normalString, "utf-8")
with open(unicodeString, "w") as f:
...
そして、それらのUnicode文字列を使用してファイルを作成します。Python(および間接的にWindows API)が残りを処理します。
文字列を Windows での作業に適したものにしたい場合は、このsafeFilenameCodecを使用できます。これは許容される文字のサブセットですが、クレイジーなことを心配する必要はありません。そして、それは寛大なライセンスを持っています。