我经历了djangobook和的例子之一作者写道的:类型转换为unicode字符串?
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)
是否“U”在前面“%s%S”把字符串转换成Unicode的?
我经历了djangobook和的例子之一作者写道的:类型转换为unicode字符串?
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)
是否“U”在前面“%s%S”把字符串转换成Unicode的?
它不完全将字符串“转”为unicode,它表示一个unicode字符串。引述documentation
在Python源代码,统一文字被写为“U”形或“U”字 ... 理想前缀字符串 ,你会希望能写文字用你的语言的自然编码。然后你可以用你最喜欢的编辑器编辑Python源代码,它自然会显示 重音字符,并且在运行时使用 。
是的,那u
前缀表示该字符串是Unicode。有一两件事要知道 - 你应该声明的源代码的编码让Python知道如何处理字符串:
http://docs.python.org/howto/unicode.html#unicode-literals-in-python-source-code
的%
运营商将使用新建字符串给定字符串作为格式。由于您使用了领先的u
,因此此字符串将为Unicode。在插入新字符串之前,每个%s
都会导致将参数转换为Unicode。