无法转换 UTF-8 字符 - Python



我在Python 2.7中使用mechanizeurllib接收一堆数据到变量中。但是,尽管使用了.decode(UTF-8),但某些字符仍无法解码。完整代码如下:

#!/usr/bin/python
import urllib
import mechanize
from time import time
total_time = 0
count = 0
def send_this(url):
        global count
        count = count + 1
        this_browser=mechanize.Browser()
        this_browser.set_handle_robots(False)
        this_browser.addheaders=[('User-agent','Chrome')]
        translated=this_browser.open(url).read().decode("UTF-8")
        return translated
def collect_this(my_ltarget,my_lhome,data):
        global total_time
        data = data.replace(" ","%20")
        get_url="http://mymemory.translated.net/api/ajaxfetch?q="+data+"&langpair="+my_lhome+"|"+my_ltarget+"&mtonly=1"
        return send_this(get_url)
ctr = 0
print collect_this("hi-IN","en-GB","This is my first proper computer program.")

print语句的输出为:

{"responseData":{"translatedText":"u092fu0939 u092eu0947u0930u093e u092au0939
u0932u093e u0938u092eu0941u091au093fu0924 u0915u0902u092au094du092fu0942u091f
u0930 u092au094du0930u094bu0917u094du0930u093eu092e u0939u0948
u0964"},"responseDetails":"","responseStatus":200,"matches":[{"id":0,"segment":"This is my 
first proper computer program.","translation":"u092fu0939 u092eu0947u0930u093e u092a
u0939u0932u093e u0938u092eu0941u091au093fu0924 u0915u0902u092au094du092fu0942
u091fu0930 u092au094du0930u094bu0917u094du0930u093eu092e u0939u0948
u0964","quality":"70","reference":"Machine Translation provided by Google, Microsoft, 
Worldlingo or MyMemory customized engine.","usage-count":0,"subject":"All","created-
by":"MT!","last-updated-by":"MT!","create-date":"2013-12-20","last-update-
date":"2013-12-20","match":0.85}]}

u...开头的字符应该是应该转换的字符。

我哪里做错了?

您没有 UTF-8 编码的字符串。你有 JSON 和 JSON unicode 转义。使用 JSON 解码器对其进行解码:

import json
json.loads(your_json_string)

最新更新