Python 如何将烧瓶标记字符串转换为普通字符串

Python 如何将烧瓶标记字符串转换为普通字符串,python,flask,markup,Python,Flask,Markup,使用烧瓶时,如果使用,则它将返回一个 此标记字符串将自动将添加到其中的任何内容转换为转义字符串 #message = "Hello <em>World</em>\r\n" message = escape(message) #message = u'Hello &lt;em&gt;World&lt;/em&gt;!\r\n' message = message.replace('\r\n','<br />').replace('

使用烧瓶时,如果使用,则它将返回一个

此标记字符串将自动将添加到其中的任何内容转换为转义字符串

#message = "Hello <em>World</em>\r\n"
message = escape(message)
#message = u'Hello &lt;em&gt;World&lt;/em&gt;!\r\n'
message = message.replace('\r\n','<br />').replace('\n','<br />')
#message = u'Hello &lt;em&gt;World&lt;/em&gt;!&lt;br /&gt;' Here <br /> is automatically escaped
#But I want message = u'Hello &lt;em&gt;World&lt;/em&gt;!<br />;' 
#message=“Hello World\r\n”
消息=转义(消息)
#message=u'Hello emWorld/em\r\n'
message=message.replace('\r\n','
')。replace('\n','
')) #message=u'Hello emWorld/em!br/'此处
自动转义 #但我要的是message=u'Hello emWorld/em
;'
新添加的

会自动转义,因为
escape()
返回一个标记字符串


如何将此标记字符串转换为普通python字符串?

在替换之前尝试转换为字符串:

message = escape(message)
message = str(message).replace('\r\n','<br />').replace('\n','<br />')
message=escape(消息)
message=str(message).replace('\r\n','
')。replace('\n','
'))
或者,如果消息中有unicode符号,则转换为unicode:

message = unicode(message).replace('\r\n','<br />').replace('\n','<br />')
message=unicode(message).replace('\r\n','
')。replace('\n','
'))
您正在查找
message.unescape()

编辑:再次仔细阅读您的问题,我想我知道您的问题

在调用
replace
方法之前,需要将
Markup
对象转换回
str
,使其不再自动转义,如下所示:

str(message).replace(foo, bar)

然后,如果您确实需要保留一个
标记
对象,您可以将其转换回。

您是否在寻找可能的对象?@MartijnPieters字符串已转义:
message=escape(message)
如果它是utf-8字符串,则会出现错误。“我试过这种方法,我在这里问。”MartijnPieters谢谢你的回答。我刚才试过了,但unicode()方法不会像您所说的那样再次取消它。你有没有试过,或者在一些文档中读过?@ndpu你的方法很有效。奇怪的是,官方文件中没有写。“你从哪里知道这个方法的?”詹姆斯金:这是我的假设。我很高兴这有帮助