18

我见过一些这样的例子:

for name in os.listdir(u'somedir') :

我的问题是我将 somedir 作为变量,那么如何附加 'u' 文字?

就像是

for name in ops.listdir(u+somedir)

?

4

5 回答 5

7

给定一个原始字节字符串,您可以通过解码将其转换为unicode对象 (Python 2.x) 或str对象 (Python 3.x):

for name in ops.listdir(somedir.decode("utf-8")):

使用对字节字符串进行编码的任何编码,而不是"utf-8". 如果省略编码,将使用 Python 的标准编码(ascii在 2.x 中,utf-8在 3.x 中)。

有关详细信息,请参阅Unicode HOWTO ( 3.x )。

于 2012-08-09T17:54:00.107 回答
5

unicode(somedir)

例如使用内置函数

于 2012-08-09T17:53:04.807 回答
5

如果源somedir没有将其作为 Unicode 字符串提供(isinstance(somedir, unicode)为 False),那么您应该通过提供适当的字符编码对其进行解码(这取决于字节的来源):

unicode_somedir = somedir.decode(encoding)
于 2012-08-09T18:04:37.573 回答
1

简单的解决方案是使用 unicode 函数,如下所示:

x = unicode('1.2.3.4')

打印 x

u'1.2.3.4'

类型(x)

输入“unicode”

它现在将类型显示为 unicode。

于 2019-11-13T22:51:57.570 回答
0

如果有人像我一样遇到这篇文章:

你可以做的一个小技巧是(u'%s' % somedir)

于 2021-05-14T23:22:35.647 回答