如何将八进制字符串更改为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")