我試圖用以下命令將檔案名中含有日文的檔案上傳到服務器。這在mac或postman中完全正常,但在Windows中不正常。 字母數字的檔案名可以作業。
curl -X PUT "https://api.example.com/media/test/test.mp3" -H "Content-Type: audio/mpeg" --data-binary "@/C:/Users/user1/AppData/Local/Temp/ぁ.mp3"
我得到以下錯誤資訊
Warning: 無法從檔案中讀取資料
警告。"/C:/Users/user1/AppData/Local/Temp/?.mp3",這使一個空的
警告。POST。
是否有辦法讓它在Windows上也能作業?我試著用--data-urlencode代替--data-binary,結果是一樣的。
uj5u.com熱心網友回復:
Windows的命令提示符在涉及到Unicode時是出了名的麻煩。作為一種變通方法:避免使用非 ASCII 檔案名。通常情況下,你的檔案名會和一個替代的檔案名一起被儲存起來:
啟動一個檔案名。
啟動一個命令提示符(cmd.exe)。
用Unicode檔案名列出你的檔案:
dir M:foldersubhere),然后使用Tab鍵來迭代檔案名,直到出現你想要的檔案(它將顯示為?.txtho),或者通過添加通配符(即*.txt)完成命令。然后運行這個命令(點擊Enter)。/x引數進行同樣的操作。dir /x M:foldersubhere*.txt,你應該看到類似的東西。
2021-09-16 11:59 <DIR> 。
2021-09-16 11:59 <DIR> 。
2021-08-30 14:11 8'589'934'592 pagefile.sys
2021-09-16 11:58 4'120'885 D763~1.MP3 ? .mp3
在輸出中你注意到4'120'885作為檔案大小和?.mp3作為應該是ぁ.mp3。替代的檔案名是D763~1.MP3,這就是ASCII,可以在任何地方使用。
相應地執行cURL,然后如:
curl -X PUT "https://api.example.com/media/test/test.mp3" -H "Content-Type: audio/mpeg" --data-binary "@/C:/Users/user1/AppData/Local/Temp/D763~1.MP3"
再次:這是命令提示符。如果你用其他方式啟動cURL(即Win R或在一個程式中通過CreateProcessW()),你就不會有問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/319760.html
標籤:
上一篇:用Heroku和PM2部署Node/Express服務器
下一篇:在CURL中發送APi密鑰和密匙
