首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >addPortalMessage需要解码(‘utf-8’)

addPortalMessage需要解码(‘utf-8’)
EN

Stack Overflow用户
提问于 2014-07-09 16:25:30
回答 1查看 113关注 0票数 0

目前看来,为了让UTF-8字符显示在门户消息中,您需要首先对它们进行解码。

下面是我代码中的一个片段:

代码语言:javascript
运行
复制
self.context.plone_utils.addPortalMessage(_(u'This document (%s) has already been uploaded.' % (doc_obj.Title().decode('utf-8'))))

如果Plone中的标题已经编码了utf-8,那么字符串就是unicode字符串,下划线函数是由i18ndude处理的,我看不出为什么我们特别需要解码UTF-8。通常,我忘记添加它,并记住一旦我得到一个UnicodeError。

有什么想法吗?这是addPortalMessage的预期行为吗?是i18ndude引起了这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-09 19:53:51

UTF-8是Unicode的表示,不是Unicode,也不是Python字符串。在Python中,我们通过编码/解码在Python的unicode字符串和unicode的表示之间来回转换。

通过utf8string.decode(' UTF-8 ')解码utf-8字符串会产生一个Python字符串,该字符串可以与其他unicode字符串连接。

如果需要,Python将通过使用ASCII解码器自动将字符串转换为unicode。如果字符串中有非ASCII字符,这将失败--例如,它是用UTF-8编码的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24659031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档