我使用SL4A在android上运行python脚本。我在服务器中有一个文件,它是一个.csv文件并包含字符串。有线,一行内容是这样的:
1;ABC Budaörs;47.472518;19.059895
我尝试在我的Android手机上祝酒,但是我收到以下错误。
UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 10-13: invalid data
我猜python无法解码caharacter:ö
。为什么?我下载文件时是不是在utf-8中?
这是我的代码:
f = urllib.urlopen(URL);
for line in f:
droid.makeToast(line)
无论如何,如果我只是尝试在控制台上打印1;ABC Budaörs;47.472518;19.059895
行,我会得到以下结果:
1;ABC Buda�rs;47.472518;19.059895
这是什么角色?
感谢您的回答!!
答案 0 :(得分:1)
replacement character (通常是带有白色问号的黑色菱形)是Unicode标准中特殊值表中代码点
U+FFFD
处的符号。当系统无法将数据流呈现为正确的符号时,它用于指示问题。
并且您的错误是因为您的字符串实际上不包含utf-8
它包含一些其他编码。弄清楚编码是什么,并将其用于编码!
答案 1 :(得分:0)
csv文件类似于iso-8859-1或windows-1252。
您可以使用iconv将其转换为utf-8(在Windows和unix上免费提供)
如果你在十六进制编辑器中查看文件,你可能会发现一个字节的位置设置为高位而不是两位。