python - 将 unicode 对象转换为带有实体的拉丁字符串

标签 python unicode

我有一个像

这样的 unicode 对象
x = u"a & 日本語:  enči hallöle"

并希望将其转换为带有 h​​tml 实体的 latin-1 字符串

"a & 日本語: enči hallöle"

这背后的原因是,我希望我的用户能够输入 unicode 数据,但我需要保存数据的遗留数据库只接受 latin-1 字符串。 (“ö”不用转换,其他特殊字符必须转换)

知道在这里使用哪个模块吗?我搜索了编码模块,查找了一些编解码器,尝试了一些 unicode 对象的方法,但没有找到明智的解决方案。

最佳答案

使用 unicode.encode"xmlcharrefreplace" 选项,但请注意它不会将 & 转换为 & 给你:

>>> x = "a & 日本語:  enči hallöle".decode("utf-8")
>>> x.replace("&", "&").encode("latin-1", "xmlcharrefreplace")
'a & 日本語:  enči hall\xf6le'

关于python - 将 unicode 对象转换为带有实体的拉丁字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9112621/

相关文章:

c++ - 通过旧的(非 wchar)API 函数在非 ANSI 系统上打开文件

html - 有什么理由不将 HTML 编码设置为 UTF-8 吗?

unicode - Prolog 中基本多语言平面 (BMP) 之外的转义字符

python - 使用 Django 和 Gunicorn 在父级运行启动代码

python - 使用 Streamlit 和 Langchain 构建在线 AutoGPT 应用程序时出错

Python网络浏览器打开带有书签的url,例如www.something.com/file.html#top

javascript - Chrome 扩展程序徽章文本 - ✔ 呈现为 “”

sql-server - 如何在SQL Server/SQL Reporting Services上显示东方字母(汉字)?

python - 尝试覆盖 django rest 框架中的更新方法以在更新后返回整个查询集

python - DB-API SQLite INSERT 语句在 Python 2.7 中抛出 InterfaceError