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

时间:2012-08-09 17:51:40

标签: python unicode-literals

我见过这样的例子:

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

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

类似

for name in ops.listdir(u+somedir)

5 个答案:

答案 0 :(得分:6)

给定一个原始字节字符串,您可以通过解码将其转换为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)。

答案 1 :(得分:5)

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

unicode_somedir = somedir.decode(encoding)

答案 2 :(得分:3)

的unicode(somedir)

e.g。使用内置函数

答案 3 :(得分:0)

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

x = unicode('1.2.3.4')

打印x

u'1.2.3.4'

类型(x)

  

输入“ unicode”

现在将类型显示为Unicode。

答案 4 :(得分:0)

万一有人像我一样看到这篇文章:

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