gpt4 book ai didi

python - django + unicode 常量错误

转载 作者:太空宇宙 更新时间:2023-11-04 06:36:43 26 4
gpt4 key购买 nike

我去年构建了一个 django 网站,它为客户端同时使用了仪表板和 API。

他们有时会将 unicode 信息(通常通过 Microsoft 键盘和单引号字符!)放入数据库中。

为所有内容更改这个实例很好,但是当添加一个我还没有“转换”的新角色时,我经常遇到类似这样的错误:

UnicodeDecodeError at /xx/xxxxx/api/xxx.json

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

问题实际上是我需要能够将此 unicode(来自模型)转换为 HTML。

# if a char breaks the system, replace it here (duplicate line)
text = unicode(str(text).replace('\xa3', '£'))

我在这里复制了这一行,但它只是中断了。

因为我知道这是直截了当的事情而且我在某个地方做了一些非常愚蠢的事情,所以把我的头发弄得乱七八糟。

在别处搜索后发现虽然我的问题不是新问题,但我无法在别处找到答案。

最佳答案

我假设 text 是 unicode(这似乎是一个安全的假设,因为 \xa3£ 字符的 unicode)。

我不确定您为什么需要对它进行编码,因为在模板中输出的文本将被转换为 utf-8,并且所有浏览器都完全能够显示它。可能还有一点更进一步,其中某些东西(不幸的是,可能是您的代码)假定为 ASCII,并且隐式转换正在破坏事物。

在这种情况下,您可以这样做:

text = text.encode('ascii', 'xmlcharrefreplace')

将非 ASCII 字符转换为 HTML/XML 实体,如 £

关于python - django + unicode 常量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9891447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com