错误信息如下:
[DEBUG ] 16:43:50 server:156 uploading files to /tmp/delugeweb-iH0Lwq
[DEBUG ] 16:43:50 server:164 uploaded 1 file(s)
[DEBUG ] 16:43:50 json_api:255 json-request: {"method":"web.get_torrent_info","params":["/tmp/delugeweb-iH0Lwq/tmpb4atGK.torrent"],"id":34}
[DEBUG ] 16:43:50 common:68 Attempting to open /tmp/delugeweb-iH0Lwq/tmpb4atGK.torrent.
[ERROR ] 16:43:50 json_api:271 'utf8' codec can't decode byte 0xb7 in position 0: invalid start byte
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/deluge/ui/web/json_api.py", line 293, in render
d = self._on_json_request(request)
File "/usr/lib/python2.7/site-packages/deluge/ui/web/json_api.py", line 265, in _on_json_request
return self._send_response(request, response)
File "/usr/lib/python2.7/site-packages/deluge/ui/web/json_api.py", line 276, in _send_response
response = json.dumps(response)
File "/usr/lib/python2.7/json/__init__.py", line 243, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python2.7/json/encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python2.7/json/encoder.py", line 270, in iterencode
return _iterencode(o, 0)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb7 in position 0: invalid start byte
具体的错误是因为json.dumps在输出json的时候其中的dict key中文变成了hex类型
将/usr/lib/python2.7/site-packages/deluge/ui/web/json_api.py中(或者python2.6)
_send_response方法中的
response = json.dumps(response)
修改为
try:
response = json.dumps(response)
except Exception,e:
response = json.dumps(response,ensure_ascii=False)