Python - 如何将Unicode文字添加到变量中?

20
我看到过一些类似这样的例子:
for name in os.listdir(u'somedir') :

我的问题是我得到了一个变量作为somedir,那么我怎样才能添加'u'字面量?类似这样:
for name in ops.listdir(u+somedir)

?

5个回答

7

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

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

使用字节字符串本身所采用的编码而不是 "utf-8"。如果省略编码,Python将使用其标准编码(在2.x中为ascii,在3.x中为utf-8)。

有关更多信息,请参见 Unicode HOWTO3.x)。


5

如果somedir的来源不是Unicode字符串(isinstance(somedir,unicode)为False),则应通过提供适当的字符编码对其进行解码(这取决于字节来自何处):

unicode_somedir = somedir.decode(encoding)

5

使用内置函数unicode(somedir)

例如,使用内置函数


请注意,通常需要提供编码,并且encode()decode()方法是在原始字节字符串和Unicode字符串之间进行转换的首选方式。 - Sven Marnach

3

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

你可以使用一个小技巧:(u'%s' % somedir)


该内容涉及IT技术,建议您在代码编写时使用此技巧。

1

简单的解决方法是使用以下的unicode函数:

x = unicode('1.2.3.4')

print x

u'1.2.3.4'

type(x)

类型是 'unicode'

现在显示的类型是 unicode。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接