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

时间:2012-02-02 12:51:20

标签: python unicode

我有一个像

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

并希望将其转换为带有html实体的latin-1字符串,例如

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

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

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

2 个答案:

答案 0 :(得分:4)

使用"xmlcharrefreplace"的{​​{1}}选项,但请注意,它不会为您unicode.encode翻译&

&

答案 1 :(得分:0)

只需将您的UTF-8编码即可保存。

>>> x.encode("UTF-8")
'a & \xc3\xa6\xc2\x97\xc2\xa5\xc3\xa6\xc2\x9c\xc2\xac\xc3\xa8\xc2\xaa\xc2\x9e:  en\xc3\x84\xc2\x8di hall\xc3\x83\xc2\xb6le'