linux curl另存为utf-8

fly*_*sic 12 linux curl

尝试使用linux curl从url下载xml文件.

很确定xml是用UTF-8编码的,

怀疑curl -o不会保存为UTF-8.

无论如何强制保存到UTF-8卷曲?


感谢您的建议,我发现了:

因为xml提要是动态的,所以它不是一直包含任何utf-8字符.有时它没有在整个内容UTF-8字符在所有即使它被设置为在XML编码和报头内容类型UTF-8:字符集= UTF-8.当它至少包含一个utf-8字符时,它将保存为utf-8.

当这种情况发生,袅袅不下载为UTF-8,这是有道理的,因为没有UTF-8字符,为什么有必要存储为UTF-8.

这是非常棘手的,一些验证器必须对utf-8有效,因此我仍然需要一个解决方案来强制它到utf8,因为默认情况下我的所有xml shld都是utf8编码.

尝试使用iconv f iso8859-1 utf-8的建议不适用于这种情况,因为我怀疑它不在iso8859-1.

还需要更好的解决方案.

use*_*136 14

curl不会对它下载的文件进行任何转换.如果HTTP服务器以另一种编码(例如,ISO8859-1)为您提供XML,那么curl将如何将其保存到磁盘.

要解决您的问题,您可以使用"iconv",如下所示:

curl URL | iconv -f iso8859-1 -t utf-8 > output.xml
Run Code Online (Sandbox Code Playgroud)

希望这有帮助.


And*_*ury 5

您是否尝试过添加 Accept-Charset 标头?我在下载一个使用错误编码下载的文件时遇到了类似的问题。当我设置 Accept-Charset 标头时,它可以工作:

curl -H "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" URL | iconv -f iso8859-1 -t utf-8 > output.xml
Run Code Online (Sandbox Code Playgroud)