我有一些代码来加密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"
答案 0 :(得分:7)
你所看到的可能不是真正的“反斜杠字符”,但它是不可打印(或非ascii)字符的字符串表示。例如,\t
是Tab,而不是反斜杠和t
。
您应该使用
构建您的网址"http://awebsite.me/main?%s" % (urllib.urlencode({'param': cipherText}))