2010-05-20 51 views
2

我有一些代码来加密Python中的一些字符串。加密文本在某些URL中用作参数,但在加密后,字符串中会出现反斜杠,并且我无法在urllib2.urlopen中使用单个反斜杠。替换Python字符串中的反斜杠

我不能用双替换单个反斜杠。例如:

print cipherText 

'\[email protected]\xab7+\xc7\x93H\xdc\xd1\x13G\xe1\xfb' 

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

'\[email protected]\xab7+\xc7\x93H\xdc\xd1\x13G\xe1\xfb' 

将r放在\ in replace语句的前面也没有奏效。

所有我想要做的就是调用该网址类型:

http://awebsite.me/main?param="\[email protected]\xab7+\xc7\x93H\xdc\xd1\x13G\xe1\xfb" 

而且也是这个网址可以成功地称为:

http://awebsite.me/main?param="\\[email protected]\\xab7+\\xc7\\x93H\\xdc\\xd1\\x13G\\xe1\\xfb" 

回答

7

可能就是你看到的是不是真正的“反斜线字符“,但它是不可打印(或非ASCII)字符的字符串表示形式。例如\t是Tab,不是反斜杠和t

你应该建立自己的网址

"http://awebsite.me/main?%s" % (urllib.urlencode({'param': cipherText}))