我正在使用以下curl调用来编译csv文件格式远程服务器:
curl -H "Content-Type: text/csv; charset=utf-8" ftp://user:password@ftp.url.com:21/file.csv | iconv -f iso8859-1 -t utf-8 > tmp.csv
当我检查tmp.csv文件时,欧元符号(€)显示为< 80>
检查服务器上的csv文件是否正确显示,因此我认为在卷曲过程中某些内容编码不正确。
谷歌搜索建议在我的通话中添加-H“Content-Type:text / csv; charset = utf-8”或iconv -f iso8859-1 -t utf-8,但这没有帮助。
帮助我stackoverflow你唯一的希望。
一个侧面问题,为什么€符号会导致很多编码问题?
答案 0 :(得分:1)
我相信源文件包含字节0x80
,它是ISO-8859-1中的控制字符和Windows 1252中的欧元符号。
当您使用ISO-8859-1作为输入编码调用iconv
时,它将字节0x80
视为代码点U + 0080,编辑器不显示,显示为矩形,或显示为<80>
。
您最有可能想要Windows 1252,它将字节0x80
视为U + 20AC,即欧元符号:
curl ftp://user:password@ftp.url.com:21/file.csv | iconv -f cp1252 -t utf-8 > tmp.csv
顺便说一下,我删除的标题指定了请求的类型,而不是响应。请求是空的。