1
manfay 2014-08-22 12:04:01 +08:00
好有趣,真的不容易转,因为 '\' 和 '\x' 都是转义符。
等高手解答…… |
2
wangyongbo 2014-08-22 12:09:52 +08:00
print ssid
重新复制一遍 |
3
binux 2014-08-22 12:10:11 +08:00
这个字符串的含义就是 \xE4\xB8\x8D\xE6\x98\xAF\xE4\xBD\xA0\xE7\x9A\x84\xE7\xBD\x91\xE4\xBD\xA0\xE8\xBF\x9E\xE4\xB8\xAA\xE5\x95\xA5\xE5\x98\x9E
有全是 ascii 字符,有什么不能转的? |
5
wangyongbo 2014-08-22 12:18:19 +08:00
import binascii
"".join(binascii.a2b_hex(x) for x in ssid.lstrip("\\x").split("\\x")) |
6
berry10086 OP @wangyongbo 不行,print之后是\xe4
|
7
ehs2013 2014-08-22 12:20:34 +08:00
>>> exec('ssid2="'+ssid+'"')
>>> ssid2 '\xe4\xb8\x8d\xe6\x98\xaf\xe4\xbd\xa0\xe7\x9a\x84\xe7\xbd\x91\xe4\xbd\xa0\xe8\xbf\x9e\xe4\xb8\xaa\xe5\x95\xa5\xe5\x98\x9e' >>> print ssid2 不是你的网你连个啥嘞 很 ugly 的做法,不过能用 |
8
wangyongbo 2014-08-22 12:21:09 +08:00
@berry10086
>>> s u'\\xE4\\xB8\\x8D\\xE6\\x98\\xAF\\xE4\\xBD\\xA0\\xE7\\x9A\\x84\\xE7\\xBD\\x91\\xE4\\xBD\\xA0\\xE8\\xBF\\x9E\\xE4\\xB8\\xAA\\xE5\\x95\\xA5\\xE5\\x98\\x9E' >>> print "".join(binascii.a2b_hex(x) for x in s.lstrip("\\x").split("\\x")) 不是你的网你连个啥嘞 >>> |
9
berry10086 OP @wangyongbo 谢谢😜
|
10
berry10086 OP @ehs2013 谢谢😊
|
11
binux 2014-08-22 12:30:42 +08:00 2
eval("'%s'" % ssid)
PS: 你肯定搞错什么了,你给的字符串的字面意就是 \xE4\xB8\x8D\xE6\x98\xAF\xE4\xBD\xA0\xE7\x9A\x84\xE7\xBD\x91\xE4\xBD\xA0\xE8\xBF\x9E\xE4\xB8\xAA\xE5\x95\xA5\xE5\x98\x9E 它表达的就是 \xE4\xB8\x8D\xE6\x98\xAF\xE4\xBD\xA0\xE7\x9A\x84\xE7\xBD\x91\xE4\xBD\xA0\xE8\xBF\x9E\xE4\xB8\xAA\xE5\x95\xA5\xE5\x98\x9E 这样一个纯ascii串 |
12
skybr 2014-08-22 12:32:33 +08:00 5
>>> ssid = u'\\xE4\\xB8\\x8D\\xE6\\x98\\xAF\\xE4\\xBD\\xA0\\xE7\\x9A\\x84\\xE7\\xBD\\x91\\xE4\\xBD\\xA0\\xE8\\xBF\\x9E\\xE4\\xB8\\xAA\\xE5\\x95\\xA5\\xE5\\x98\\x9E'
>>> print s.decode('string-escape') 不是你的网你连个啥嘞 |
13
dbow 2014-08-22 12:33:06 +08:00 3
|
15
iptux 2014-08-22 12:40:32 +08:00
"不是你的网你连个啥嘞"
|
16
est 2014-08-22 12:42:14 +08:00
>>> ssid = u'\\xE4\\xB8\\x8D\\xE6\\x98\\xAF\\xE4\\xBD\\xA0\\xE7\\x9A\\x84\\xE7\\xBD\\x91\\xE4\\xBD\\xA0\\xE8\\xBF\\x9E\\xE4\\xB8\\xAA\\xE5\\x95\\xA5\\xE5\\x98\\x9E'
>>> print ssid.decode('string_escape') 不是你的网你连个啥嘞 |
18
hahastudio 2014-08-22 12:44:02 +08:00
来一个好玩的
>>> print eval('"%s"' % ssid) 不是你的网你连个啥嘞 |
19
hahastudio 2014-08-22 12:45:11 +08:00
比 @binux 慢了。。。好久= =
|
20
hahastudio 2014-08-22 12:46:58 +08:00 1
突然想起来
There should be one-- and preferably only one --obvious way to do it. 然后觉得满脸黑线= = |
21
clino 2014-08-22 12:47:21 +08:00
感情是用python写wifi破解滴工具?
|
22
berry10086 OP @clino 不是,是写一个管理wifi连接的web页面,搜到中文的ssid没法显示
|
23
berry10086 OP @skybr 好方法,谢谢
|
24
walleL 2014-08-22 15:38:06 +08:00
>>> ssid = u'\\xE4\\xB8\\x8D\\xE6\\x98\\xAF\\xE4\\xBD\\xA0\\xE7\\x9A\\x84\\xE7\\xBD\\x91\\xE4\\xBD\\xA0\\xE8\\xBF\\x9E\\xE4\\xB8\\xAA\\xE5\\x95\\xA5\\xE5\\x98\\x9E'
>>> print binascii.a2b_hex(ssid.replace('\\x', '')) 不是你的网你连个啥嘞 @wangyongbo 看了你的解法,然后去翻了一下文档,发现直接这样就可以。。。 |
25
zonyitoo 2014-08-22 17:23:10 +08:00
ssid.decode('unicode_escape')
这样可以否? |
26
berry10086 OP @zonyitoo 试过了,不行
|
27
lll9p 2014-08-22 19:01:12 +08:00
Python2字符编码确实麻烦一点
|
28
Abirdcfly 2014-08-22 20:33:42 +08:00
|
30
zonyitoo 2014-08-23 09:30:02 +08:00
@berry10086 ssid.decode('string_escape') 这样总行了吧,Python 2.7.5 亲测可用啊!
|