python - 如何将unicode文字添加到变量?

use*_*654 16 python unicode-literals

我见过这样的例子:

for name in os.listdir(u'somedir') :
Run Code Online (Sandbox Code Playgroud)

我的问题是我将somedir作为变量,所以如何附加'u'字面值?

就像是

for name in ops.listdir(u+somedir)
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 7

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

for name in ops.listdir(somedir.decode("utf-8")):
Run Code Online (Sandbox Code Playgroud)

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

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


Dav*_*Lam 5

unicode(somedir)

例如使用内置函数


jfs*_*jfs 5

如果源somedir不提供它作为Unicode字符串(isinstance(somedir, unicode)是False),那么你应该通过提供适当的字符编码来解码它(它取决于字节的来源):

unicode_somedir = somedir.decode(encoding)
Run Code Online (Sandbox Code Playgroud)