Python 如何将烧瓶标记字符串转换为普通字符串
使用烧瓶时,如果使用,则它将返回一个 此标记字符串将自动将添加到其中的任何内容转换为转义字符串Python 如何将烧瓶标记字符串转换为普通字符串,python,flask,markup,Python,Flask,Markup,使用烧瓶时,如果使用,则它将返回一个 此标记字符串将自动将添加到其中的任何内容转换为转义字符串 #message = "Hello <em>World</em>\r\n" message = escape(message) #message = u'Hello <em>World</em>!\r\n' message = message.replace('\r\n','<br />').replace('
#message = "Hello <em>World</em>\r\n"
message = escape(message)
#message = u'Hello <em>World</em>!\r\n'
message = message.replace('\r\n','<br />').replace('\n','<br />')
#message = u'Hello <em>World</em>!<br />' Here <br /> is automatically escaped
#But I want message = u'Hello <em>World</em>!<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你的方法很有效。奇怪的是,官方文件中没有写。“你从哪里知道这个方法的?”詹姆斯金:这是我的假设。我很高兴这有帮助