如何告诉Python不解析字符串中的反斜杠?
我正在使用 Python 2.7 和 Django 1.4。
如果我有一个字符串变量 result = "fred\xbf"
,我该怎么做才能让 Django 模板显示 "fred\xbf"
,而不是处理反斜杠并显示一些奇怪的字符呢?
我知道我可以用转义字符来处理反斜杠:"fred\\xbf"
,但我能不能让 Django 模板明白我想要的是不处理这个反斜杠呢?
2 个回答
2
这和Django的模板没有关系,而是和你最开始是怎么定义这个变量的有关。
在你的Python代码中,反斜杠只有在你把它当作字面量(直接的字符)来写的时候才会被“解释”。所以根据你上面的Python代码,你可以使用两个反斜杠,或者使用原始字符串。
如果你是从数据库中加载字符串“fred\xbf”,然后在模板中输出它,它就不会被“转义”。
3
如果你不想使用 \\
,那么可以使用原始字符串:
result = r"fred\xbf"
以 R
或 r
开头的字符串会被当作原始字符串来处理,里面的转义字符不会被解析。
>>> print "fred\xbf"
fred¿
>>> print r"fred\xbf"
fred\xbf
这在处理正则表达式时也非常有用。