我正在尝试使用Django在webfaction上创建一个应用程序。我基本上搞乱了亚马逊API,当其中一个搜索结果有一个商标符号时,会传递给我的模板...错误被抛出。我收到了错误
Caught UnicodeEncodeError while rendering: 'ascii' codec can't encode character u'\u2122' in position 9: ordinal not in range(128)
并且想知道是否有人知道修复是什么。
答案 0 :(得分:3)
这可能意味着您在一个unicode数据上调用str()
- str
函数可以被称为ascii
以更好地描述它的作用!你的模板对unicode数据非常满意,所以假设你使用的是Django,我怀疑问题出在__unicode__
方法或其他类似的。
Unicode是一个棘手的主题,让python unicode
的Google感受到它。
Tricky在没有看到更多代码的情况下进一步帮助您,但要点是尝试在您的应用程序中使用unicode字符串! Python有一个unicode()
方法,与简单字符串的str
方法完全相同,但也适用于unicode字符串 - 最好使用它。
答案 1 :(得分:1)
是的,u'\u2122'
是商标标志。在代码的某处,您应该是:
或
需要采取哪些措施?不知道,因为你还没有提供追溯...... 请编辑你的问题以包含完整的追溯,并将其格式化为代码,以便它清晰可读。