卷曲欧元符号

Curl Euro Symbol

我正在使用以下 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 文件,€ 显示正确,因此我认为在 curl 过程中有些地方编码不正确。

谷歌搜索建议在我的电话中添加 -H "Content-Type: text/csv; charset=utf-8" 或 iconv -f iso8859-1 -t utf-8 但这没有帮助。

帮助我 Whosebug 你是我唯一的希望。

附带问题,为什么 € 符号会导致很多编码问题?

我认为源文件包含字节 0x80,它是 ISO-8859-1 中的控制字符和欧元符号 Windows 1252。

当您按照您的方式调用 iconv 时,使用 ISO-8859-1 作为输入编码,它会将字节 0x80 视为代码点 U+0080,编辑器要么不这样做' t 显示,显示为矩形,或者显示为<80>.

您很可能需要 Windows 1252,它将字节 0x80 视为 U+20AC,即欧元符号:

curl ftp://user:password@ftp.url.com:21/file.csv | iconv -f cp1252 -t utf-8 > tmp.csv

顺便说一句,我删除的 header 指定了 请求 的类型,而不是 响应 的类型。并且请求为空。