【问题标题】:Curl Euro Symbol卷曲欧元符号
【发布时间】:2015-01-30 16:26:08
【问题描述】:

我正在使用以下 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 文件时,欧元符号 (€) 显示为

检查服务器上的 csv 文件,€ 显示正确,所以我认为在 curl 过程中某些内容编码不正确。

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

帮我stackoverflow你我唯一的希望。

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

【问题讨论】:

    标签: csv curl utf-8


    【解决方案1】:

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

    当您以您的方式调用 iconv 时,使用 ISO-8859-1 作为输入编码,它将字节 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
    

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

    【讨论】:

    • 非常感谢。也谢谢你的解释
    猜你喜欢
    • 2010-11-26
    • 2014-11-11
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多