我遇到了麻煩,在我的Django項目UnicodeEncodeError
,並最終通過改變返回值解決問題(太多的無奈後)在故障從蟒蛇:UNICODE函數VSü前綴
return unicode("<span><b>{0}</b>{1}<span>".format(val_str, self.text))
__unicode__
方法
到
return u"<span><b>{0}</b>{1}<span>".format(val_str, self.text)
但我很困惑,爲什麼這個工作(或者說,爲什麼在首位的問題)。 u
前綴和unicode
函數不會做同樣的事情嗎?當在一個控制檯嘗試它,他們似乎給了相同的結果:
# with the function
test = unicode("<span><b>{0}</b>{1}<span>".format(2,4))
>>> test
u'<span><b>2</b>4<span>'
>>> type(test)
<type 'unicode'>
# with the prefix
test = u"<span><b>{0}</b>{1}<span>".format(2,4)
>>> test
u'<span><b>2</b>4<span>'
>>> type(test)
<type 'unicode'>
但似乎編碼以某種方式做不同的視的二手什麼。這裏發生了什麼?
什麼Python版本是什麼? – 2014-09-22 20:54:32
2.7。 對不起,這與Python 3現在處理字符串/ unicode的方式有所不同。 – Pterosaur 2014-09-22 20:55:35
在unicode函數版本中,您將格式化爲「unicodize」。格式化的問題是什麼? – tdelaney 2014-09-22 20:55:41