尝试使用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)
希望这有帮助.
您是否尝试过添加 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)
| 归档时间: |
|
| 查看次数: |
26092 次 |
| 最近记录: |