gpt4 book ai didi

python - 如何强制 python 函数使用 UTF-8

转载 作者:行者123 更新时间:2023-11-30 23:37:21 25 4
gpt4 key购买 nike

我的 python 函数有问题 os.path.isdir

当我尝试使用它时,我得到:UnicodeDecodeError:'ascii'编解码器无法解码位置36中的字节0xc5:序数不在范围内(128)

我已经在文件头中放置了编码“stamp”#!/usr/bin/env python #coding: utf-8

我还使用相当正确的字符串解码来获取 utf-8 符号(我通过 QT QLineEdit 加载它们 - 但这并不重要)。

tmp_filepath = u''
tmp_filepath = tmp_filepath.decode('utf-8')
tmp_filepath += QtGui.QFileDialog.getExistingDirectory(self,"Choose directory",self.directorypath,QtGui.QFileDialog.ShowDirsOnly)

我尝试使用时出现问题:os.path.isdir(tmp_filepath)

我读到这可能是由错误的 python 版本(非 utf-8)引起的,但我找不到有关此问题的其他信息。我在 Linux Ubuntu 10.04 上使用 python 2.6.5。

最佳答案

isdir 想要将其参数转换为字节序列 (str),因为底层文件系统使用字节序列作为文件名。如果您提供一个字符串(unicode),它必须以某种方式对其进行编码。

它使用与打印命令相同的编码规则。尝试打印 tmp_filepath,您可能会得到相同的异常。

要解决此问题,(a) 设置您的区域设置(例如环境中的 LANG=en_US.utf-8)或 (b) 将 tmp_filename.encode('utf-8') 传递给 isdir 和 mkdir。

我推荐(a)。

关于python - 如何强制 python 函数使用 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15659133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com