替换 Python 字符串中的反斜杠

发布于 2024-09-02 04:43:20 字数 577 浏览 3 评论 0原文

我有一些代码可以在 Python 中加密一些字符串。加密文本在某些url中用作参数,但加密后,字符串中出现反斜杠,我无法在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 放在 \ 前面也不起作用。

我只想调用这样的url:

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

并且这个url也能成功调用:

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

I have some code to encrypt some strings in Python. Encrypted text is used as a parameter in some urls, but after encrypting, there comes backslashes in string and I cannot use single backslash in urllib2.urlopen.

I cannot replace single backslash with double. For example:

print cipherText 

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

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

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

Also putting r in front of \ in replace statement did not worked.

All I want to do is calling that kind of url:

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

And also this url can be successfully called:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光病人 2024-09-09 04:43:20

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

您应该使用以下内容构建您的网址

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

probably what you are seeing is not a real "backslash character", but it is the string representation of a non printable (or non-ascii) character. For example \t is Tab, not a backslash and t.

You should build your url with

"http://awebsite.me/main?%s" % (urllib.urlencode({'param': cipherText}))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文