使用curl 發送XML 檔案會導致:
Invalid XML character (Unicode : 0x<integer>)
嘗試解決問題
根據這個答案如果將XML版本變更為1.1,該問題將會解決。
儘管 XML 檔案中的版本已更新:
<?xml version="1.1" encoding="utf-8" standalone="yes"?>
curl 似乎繼續傳送 1.0 版本的 XML。
第二次嘗試解決該問題
另一種嘗試是更改使用curl發佈時使用的標頭,如下所示:
curl -X POST -H "Content-Type: text/xml; charset=utf-8; version=1.1"
Curl 似乎忽略了這一點,因為輸出顯示使用了 xml 版本 1.0:
* Closing connection #0
<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope
第三次嘗試解決問題
@Ƭᴇcʜιᴇ007 建議建立一個小的 XML 檔案:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body>
<note>
<to>Test</to>
</note>
</soap:Body>
</soap:Envelope>
驗證語法並隨後發布它:
An invalid XML character (Unicode : 0x<integer>) was found
第四次嘗試解決問題
根據這個答案0x<integer_greater_than_20>
當大於 0x20 時,不應出現此問題。
第五次嘗試解決問題
代表什麼0x<integer_greater_than_20>
?根據這張桌子它代表似乎可以接受的拉丁字符。
第六次嘗試解決該問題
也許 XML 檔案無效?不,根據 Notepad++ 的「立即檢查 XML 語法」選項,XML 是有效的。