curl 的 --data 选项执行哪些数据转换?

curl 的 --data 选项执行哪些数据转换?

我最近使用curl的--data选项将一些JSON上传到服务器,在阅读了联机帮助页后,我不确定我是否可以相信它完好无损。

卷发联机帮助页 明确地描述了curl之间的一个区别--data/--data-ascii--data-binary选项;也就是说,当@filename使用该语法使curl从文件中读取数据时,--data将从文件中删除换行符,但--data-binary不会。

但是,手册页听起来好像还有更多差异。描述中的以下段落--data-binary只能合理地解释为除了--data对给定数据执行的换行符删除之外还存在某些“转换”:

--data-binary <数据>

...

...数据的发布方式与 --data-ascii 类似,只是保留换行符和回车符并且转换从未完成(强调我的)

这些神秘的“转变”是什么?它们存在吗?它们没有记录在手册的选项部分中--data,我也无法通过实验发现它们。人们可能期望的显而易见的事情--data(例如与号、斜线、散列、问号、等号、汉字或猫脸上带着微笑的眼睛)全部原封不动地发送。

那么手册到底讲了什么呢?

答案1

这些神秘的“转变”是什么?

如果没有二进制标志,则以stdin文本模式读取(这在 Windows 上会有所不同),并且在需要它的平台(IBM 大型机等)上,数据会从字符集IBM-1047(又名EBCDIC)重新编码为ISO8859-1使用iconv(3).Content-Length计算数据长度(传递给朋友)的方式也存在差异。

相关内容