繁体   English   中英

无法转换UTF-8字符-Python

[英]Unable to convert UTF-8 characters - 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":"\u092f\u0939 \u092e\u0947\u0930\u093e \u092a\u0939
u0932\u093e \u0938\u092e\u0941\u091a\u093f\u0924 \u0915\u0902\u092a\u094d\u092f\u0942\u091f
\u0930 \u092a\u094d\u0930\u094b\u0917\u094d\u0930\u093e\u092e \u0939\u0948
\u0964"},"responseDetails":"","responseStatus":200,"matches":[{"id":0,"segment":"This is my 
first proper computer program.","translation":"\u092f\u0939 \u092e\u0947\u0930\u093e \u092a
\u0939\u0932\u093e \u0938\u092e\u0941\u091a\u093f\u0924 \u0915\u0902\u092a\u094d\u092f\u0942
\u091f\u0930 \u092a\u094d\u0930\u094b\u0917\u094d\u0930\u093e\u092e \u0939\u0948
\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...\u003c/code>开头的字符应该是应该转换的字符。

我哪里出问题了?

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

import json
json.loads(your_json_string)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM