Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UTF-8和中文字符_Utf 8_Unicode String - Fatal编程技术网

UTF-8和中文字符

UTF-8和中文字符,utf-8,unicode-string,Utf 8,Unicode String,我有一个调用google API的函数: def get_lat_long(place): place = re.sub('\s','+', str(place), flags=re.UNICODE) url = 'https://maps.googleapis.com/maps/api/geocode/json?address=' + place content = urllib2.urlopen(url).read() obj = json.loads(co

我有一个调用google API的函数:

def get_lat_long(place):
    place = re.sub('\s','+', str(place), flags=re.UNICODE)
    url = 'https://maps.googleapis.com/maps/api/geocode/json?address=' + place
    content = urllib2.urlopen(url).read()

    obj = json.loads(content)
    results = obj['results']

    lat = long = None
    if len(results) > 0:
        loc = results[0]['geometry']['location']
        lat = float(loc['lat'])
        long = float(loc['lng'])

    return [lat, long]
然而,当我进入師大附中 作为一个参数,我得到一个错误:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 
我试着用strplace编码“utf-8”,但我认为这不是问题所在。我认为这是因为函数无法读取汉字,所以它需要先将汉字转换为unicode字符串,然后再读取?不过这只是猜测而已

假设place是unicode类型,您需要执行以下操作:

def get_lat_long(place):
    place = urllib.quote_plus(place.encode('utf-8'))
    url = 'https://maps.googleapis.com/maps/api/geocode/json?address=' + place

1.哪个Python版本?2.错误发生在哪一行?你能把你的例子精简到这一行吗?3.strplace.encode'utf-8'没有多大意义,str自己进行编码/解码我的Python版本是2.7。我得到错误的那一行是我发布的代码片段的第二行。什么样的地方?unicode?