如何将八进制字符串更改为char?
How to change octal string to char?
所以我正在尝试使用 python 登录网络客户端 wifi 登录页面。 Web 客户端不断为每个登录会话生成特殊的八进制字符。所以我想做的是:
requests.get(web-client).text -> 通过循环文本索引得到八进制代码 -> 结合密码
问题是:
-如果我写
password="password"
special="0" + password + "3224252613510355"
print(special)
它returns =
àpassword#¢2ü2õ2¶Óe©ÃÍ #this is what i want, python translate it to char
-但是如果我索引网页
import requests
webtext= requests.get(web-client url).text
password= "password"
special1= ""
special2= ""
for i in range(3163, 3167): #range of the first octal
special1 = special1+webtext[i]
for i in range(3204, 3268): #range of the second octal
special2 = special2+webtext[i]
special=special1+password+special2
print(special)
它returns =
0password3224252613510355
如您所见,它没有解码为 char,python 将其转换为字符串。那么我应该怎么做才能得到相同的结果呢?
顺便说一句,我正在通过打开保存的网页文本文件来模拟请求 html
这应该有效:
>>> def convert_oct_to_string( oct ) :
... return ''.join([chr(int(i,8)) for i in oct.split('\') if len(i) > 1])
...
>>> convert_oct_to_string( "\340" )
'\xe0'
>>> convert_oct_to_string( "\043\242\062\374\062\365\062\266\201\323\145\251\200\303\025\315" )
'#\xa22\xfc2\xf52\xb6\x81\xd3e\xa9\x80\xc3\x15\xcd'
>>>
这应该可以回答下面的一些问题
Python 2.7
>>> "0"
'\xe0'
Python 3.4
>>> "0"
'à'
以防万一,Python3中的相同内容:
>>> def convert_oct_to_string( oct ) :
... return ''.join([chr(int(i,8)) for i in oct.split('\') if len(i) > 1])
...
>>> convert_oct_to_string( "\043\242\062\374\062\365\062\266\201\323\145\251\200\303\025\315" )
'#¢2ü2õ2¶\x81Óe©\x80Ã\x15Í'
你可以试试
my_string = "\043\242\062\374\062\365\062\266\201\323\145\251\200\303\025\315"
bytes(my_string, "utf-8").decode("unicode_escape")
所以我正在尝试使用 python 登录网络客户端 wifi 登录页面。 Web 客户端不断为每个登录会话生成特殊的八进制字符。所以我想做的是:
requests.get(web-client).text -> 通过循环文本索引得到八进制代码 -> 结合密码
问题是:
-如果我写
password="password" special="0" + password + "3224252613510355" print(special)
它returns =
àpassword#¢2ü2õ2¶Óe©ÃÍ #this is what i want, python translate it to char
-但是如果我索引网页
import requests
webtext= requests.get(web-client url).text
password= "password"
special1= ""
special2= ""
for i in range(3163, 3167): #range of the first octal
special1 = special1+webtext[i]
for i in range(3204, 3268): #range of the second octal
special2 = special2+webtext[i]
special=special1+password+special2
print(special)
它returns =
0password3224252613510355
如您所见,它没有解码为 char,python 将其转换为字符串。那么我应该怎么做才能得到相同的结果呢?
顺便说一句,我正在通过打开保存的网页文本文件来模拟请求 html
这应该有效:
>>> def convert_oct_to_string( oct ) :
... return ''.join([chr(int(i,8)) for i in oct.split('\') if len(i) > 1])
...
>>> convert_oct_to_string( "\340" )
'\xe0'
>>> convert_oct_to_string( "\043\242\062\374\062\365\062\266\201\323\145\251\200\303\025\315" )
'#\xa22\xfc2\xf52\xb6\x81\xd3e\xa9\x80\xc3\x15\xcd'
>>>
这应该可以回答下面的一些问题
Python 2.7
>>> "0"
'\xe0'
Python 3.4
>>> "0"
'à'
以防万一,Python3中的相同内容:
>>> def convert_oct_to_string( oct ) :
... return ''.join([chr(int(i,8)) for i in oct.split('\') if len(i) > 1])
...
>>> convert_oct_to_string( "\043\242\062\374\062\365\062\266\201\323\145\251\200\303\025\315" )
'#¢2ü2õ2¶\x81Óe©\x80Ã\x15Í'
你可以试试
my_string = "\043\242\062\374\062\365\062\266\201\323\145\251\200\303\025\315"
bytes(my_string, "utf-8").decode("unicode_escape")