我一直在摆弄python geopy,我尝试了文档中给出的基本命令。但是在尝试raw
命令(将查询地理定位到地址和坐标)时,我得到 UnicodeEncodeError
print(location.raw)
错误UnicodeEncodeError: 'charmap' codec can't encode character '\xa9' in position 83: character maps to <undefined>
然后我尝试了另一种方法(找到对应于一组坐标的地址)
print(location.address)
我收到同样的错误UnicodeEncodeError: 'charmap' codec can't encode character '\u0101' in position 10: character maps to <undefined>
我尝试print((location.address).encode("utf-8"))
,现在没有收到任何错误,但打印的输出就像这样b'NH39, Mirz\xc4\x81pur
使用print((location.raw).encode("utf-8"))
时出现错误
AttributeError: 'dict' object has no attribute 'encode'
有谁能告诉我这里发生了什么以及我应该做些什么来获得正确的输出?
修改(标记为重复后)
Based on the solution given in this problem I am reporting on how it does not solve my problem
我想知道的是为什么在尝试文档中给出的基本样本编码时会得到UnicodeEncodeError,并且它确实回答了这个问题。
如果我想在应用程序中使用它如何解决错误,我不能让应用程序在单独的IDE上运行或将输出发送到外部文件,因为我的应用程序将根据geopy的输出运行,我想要应用程序在我的其他应用程序中运行在终端中。
答案 0 :(得分:1)
问题是您的控制台未设置为正确显示您尝试打印的unicode字符。
在Windows 7中,对于Python 3.3 +,您可以将python控制台的代码页更改为65001,以显示unicode字符。在终端运行以下 -
chcp 65001
在开始python /你的脚本之前。
答案 1 :(得分:0)
print json.dumps(address_object.raw,ensure_ascii=False, encoding="utf-8").encode('utf-8')
请检查,希望这对你有用