对于一个项目,我必须下载世界上许多城市的数据,所以有几个特殊的字符或口音,但我无法很好地想象它。
我试过用utf-8对它进行编码但没有运气:我知道为什么但我没有来自终端的错误但是我继续想象这样的城市名称:L'H\u00f4pital Puits II
,或者另一个Marsza\u0142kowska, Warszawa
。
有人可以帮助查明错误,或者我可以尝试什么?
import requests
w = open("cittadine.txt","wb")
fullMap = requests.get("http://aqicn.org/map/world/").text
print type(fullMap) # <type 'unicode'>
fullMap = fullMap.encode("utf-8")
w.writelines(fullMap)
答案 0 :(得分:1)
您的代码没问题。你得到getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);
的原因是服务器正在发送那个确切的字符串!
{L'H\u00f4pital Puits II}}
该字符串出现在JSON块中,因此您需要找到该块,然后使用JSON模块对其进行解码,这应该将此Unicode点转换回正确的字符。
美丽的汤可能是找到JSON块的最佳方式。
<强>建议强>
将UTF-8写入文件的一种更简洁的方法是使用编码TextWrapper,它将在写入时自动编码Unicode字符:
curl "http://aqicn.org/map/world/" | grep -o "L'H\\\\u00f4pital Puits II"
L'H\u00f4pital Puits II
如果您需要将Unicode写入Windows终端,请安装https://github.com/Drekin/win-unicode-console