在Python字符串中替换反斜杠

2 投票
1 回答
1153 浏览
提问于 2025-04-15 22:57

我有一些代码用来在Python中加密字符串。加密后的文本会作为参数放在一些网址里,但加密后字符串中出现了反斜杠,我在使用urllib2.urlopen时无法使用单个反斜杠。

我不能把单个反斜杠替换成双反斜杠。比如:

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 个回答

7

你看到的可能不是一个真正的“反斜杠字符”,而是一个不可打印(或者说不是ASCII字符)的字符串表示。比如说,\t 代表的是制表符(Tab),而不是一个反斜杠和字母 t

你应该用下面的方式来构建你的网址:

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

撰写回答