gpt4 book ai didi

python - 如何将 django admin 中输入的符号转义为 html 表示

转载 作者:行者123 更新时间:2023-11-29 07:36:33 25 4
gpt4 key购买 nike

我有一个具有常规文本字段的模型,它需要能够接受用户粘贴的文本数据,其中可能包含科学符号,特别是小写的 delta δ。用户将通过模型管理员输入数据。

我使用的是 mysql 后端,编码设置为 Latin-1。更改数据库编码对我来说不是一个选项。

为了简单起见,我想做的是让管理表单删除输入文本,就像清理或验证一样,但要将诸如 δ 之类的字符转义为它们的 HTML 表示形式,这样我就可以将它们存储在数据库中,而不必转换为 Unicode 然后再转换回来。

有哪些实用程序可用于执行此操作?我查看了 escape()conditional_escape(),但它们似乎没有按照我的意愿执行(不转义特殊字符)和 django.utils.encoding.force_text() 将对所有内容进行编码,但如果我这样做,我的数据将呈现为其 Unicode 表示形式。

该站点在 django 1.10 和 python 2.7.x 上运行

非常感谢任何帮助或想法。

最佳答案

作为接收 request.POST 数据的保存方法或 View 的一部分,您可以将其转义,使用 xmlcharrefreplace 将其编码为 ascii,然后将其从字节解码回字符串:

raw_str = "this is a string with δ problematic chars"
result = html.escape(raw_str).encode("ascii", "xmlcharrefreplace").decode()
print(result) # 'this is a string with δ problematic chars'

完成工作,因为您无法更改编码,尽管不如使用 UTF-8 那样干净。祝你好运!

关于python - 如何将 django admin 中输入的符号转义为 html 表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48532369/

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