如何在视图中拆分包含非ascii字符的字符串?

时间:2016-03-16 08:27:37

标签: python django django-views

在Python 2.7和Django 1.8 postman视图中,我在邮递员视图中有这个功能:

def mod1(message):
    print 'message is', message #bob>mary:سلام
    message = str(message) #without this I get 'Message' object has no attribute 'split'
    sndr = message.split('>')[0]
    print 'snder', sndr
    #...

出现此错误

'ascii' codec can't decode byte 0xd8 in position 15: ordinal not in range(128)

奇怪的是,我可以在Python终端中进行拆分。

我还在视图顶部添加了# -*- coding: utf-8 -*-

感谢您解决此问题的提示。

1 个答案:

答案 0 :(得分:0)

消息包含一些unicode文本。

如果您在正确编码时不小心打印它,那么您将收到这些错误。

它们是因为默认情况下Python会尝试仅使用ASCII编解码器进行编码,而ASCII编解码器无法处理阿拉伯字符。通常你想告诉它使用UTF-8或类似功能的编解码器进行编码。

str(something).encode('UTF-8')