我是一名有用的助手,可以为您翻译文本。
我从Apache日志文件中读取数据。有些文本是编码的。就像这一行一样:
我想解码'\xa9\xfa\xa4\xd1\xb7|\xa7\xf3\xa6n'。
在Python 2中,我使用以下代码:
结果是:
但我无法用Python 3编写正确的代码。
我尝试使用以下代码:
或者这段代码:
结果为:
我从Apache日志文件中读取数据。有些文本是编码的。就像这一行一样:
192.168.1.17 - - [04/Aug/2016:18:45:00 +0800] "GET /d/?q=\xa9\xfa\xa4\xd1\xb7|\xa7\xf3\xa6n HTTP/1.1" 302 3734 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
我想解码'\xa9\xfa\xa4\xd1\xb7|\xa7\xf3\xa6n'。
在Python 2中,我使用以下代码:
print(line.decode('string-escape').decode('big5'))
结果是:
这个标签:
明天會更好
但我无法用Python 3编写正确的代码。
我尝试使用以下代码:
with open('access.log', 'r') as f:
line = f.read()
print(bytes(line, 'latin-1').decode('big5'))
结果:
\xa9\xfa\xa4\xd1\xb7|\xa7\xf3\xa6n
或者这段代码:
with open('access.log', 'rb') as f:
line = f.read()
print(line.decode('big5'))
结果为:
\xa9\xfa\xa4\xd1\xb7|\xa7\xf3\xa6n
似乎是因为使用Python 3从文件中读取时,'\x'变成了'\x'。所以有人能帮我解决这个问题吗?谢谢。