替换Python字符串中的反斜杠

时间:2010-05-20 23:15:41

标签: python string replace backslash

我有一些代码来加密Python中的一些字符串。加密文本在某些网址中用作参数,但在加密后,字符串中会出现反斜杠,我不能在urllib2.urlopen中使用单反斜杠。

我无法用double替换单反斜杠。例如:

print cipherText 

'\t3-@\xab7+\xc7\x93H\xdc\xd1\x13G\xe1\xfb'

print cipherText.replace('\\','\\\\')

'\t3-@\xab7+\xc7\x93H\xdc\xd1\x13G\xe1\xfb'

在替换语句中将r放在\前面也没有用。

我想做的就是调用那种网址:

http://awebsite.me/main?param="\t3-@\xab7+\xc7\x93H\xdc\xd1\x13G\xe1\xfb"

此网址也可以成功调用:

http://awebsite.me/main?param="\\t3-@\\xab7+\\xc7\\x93H\\xdc\\xd1\\x13G\\xe1\\xfb"

1 个答案:

答案 0 :(得分:7)

你所看到的可能不是真正的“反斜杠字符”,但它是不可打印(或非ascii)字符的字符串表示。例如,\t是Tab,而不是反斜杠和t

您应该使用

构建您的网址
"http://awebsite.me/main?%s" % (urllib.urlencode({'param': cipherText}))