对unicode字符串进行类型转换?

时间:2012-06-28 17:32:40

标签: python unicode

我正在浏览djangobook并在其中一个例子中写道:

def __unicode__(self):
      return u'%s %s' % (self.first_name, self.last_name)

" u"在'%s%s'前面把字符串变成unicode?

3 个答案:

答案 0 :(得分:3)

它不会将字符串“转”为unicode,它代表一个unicode字符串。引用documentation

  

在Python源代码中,Unicode文字被写为字符串   带有'u'或'U'字符的前缀   ...   理想情况下,您希望能够使用您的语言的自然编码来编写文字。那你可以   使用您喜欢的编辑器编辑Python源代码   自然的重音字符,并使用正确的字符   在运行时。

答案 1 :(得分:1)

是的,u前缀表示该字符串是Unicode。还有一件事需要知道 - 您应该声明源代码编码,以便Python知道如何处理字符串:

http://docs.python.org/howto/unicode.html#unicode-literals-in-python-source-code

Correct way to define Python source code encoding

答案 2 :(得分:1)

%运算符将使用给定字符串作为格式创建新字符串。由于您使用了前导u,因此该字符串将为Unicode。每个%s都会导致参数在插入新字符串之前转换为Unicode。