具有非 ASCII 字符的 Python 和 Windows 文件系统

发布于 2024-08-22 23:59:35 字数 149 浏览 3 评论 0原文

我想在Windows系统、Vista和Win7上用NTFS文件系统编写一个文件夹。 文件夹可能包含字符 å、ä 和/或 ö,例如“förjävligt”。

python 文件及其中的每个字符串当前都是 UTF-8 格式,如何将其转换为适合 Windows 文件系统?

I want to write a folder on a windows system, Vista and Win7 with NTFS file systems.
The folders may contain the characters å, ä and/or ö, "förjävligt" for example.

The python files and every string in it is currently in UTF-8, how do I convert it to suite the Windows file system?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我很OK 2024-08-29 23:59:35

如果您使用普通的 Python 2 字符串,则只需将它们转换为 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)将处理剩下的事情。

If you're working with normal Python 2 strings, you can simply convert them to 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:
    ...

and create the files using those Unicode strings. Python (and indirectly the Windows API) will take care of the rest.

·深蓝 2024-08-29 23:59:35

如果你想让字符串非常适合在 Windows 中使用,你可以使用这个 safeFilenameCodec。它是允许的字符的子集,但您不必担心任何疯狂的情况。并且它拥有慷慨的许可。

If you want to make the strings really nice for working with in windows you can use this safeFilenameCodec. It is a subset of allowable characters, but you won't have to worry about any craziness getting by. And it has generous licensing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文