You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cURL上传文件名含日文字符的文件在Windows系统失效如何解决

问题原因

Windows 系统默认的 CMD、PowerShell 终端字符编码为 GBK(对应地区的非 UTF-8 编码),路径中的日文字符在传递给 curl 时会被转换为无法识别的?字符,导致 curl 无法匹配到真实存在的文件,触发读取失败报错。

可落地的解决方案

你可以选择任意一种方式解决:

  • 临时修改终端编码后执行 curl 命令
    1. 如果你使用 CMD 终端,先执行编码切换命令:
      chcp 65001
      再执行你的 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/ぁ.mp3"
      
    2. 如果你使用 PowerShell 终端,先执行编码配置命令:
      $OutputEncoding = [Console]::InputEncoding = [Console]::OutputEncoding = New-Object System.Text.UTF8Encoding
      
      再执行上述修改后的 curl 命令即可。
  • 使用 PowerShell 原生上传命令规避编码问题
    直接用 PowerShell 自带的 Invoke-RestMethod 上传,不会出现字符编码识别异常:
    $filePath = "C:\Users\user1\AppData\Local\Temp\ぁ.mp3"
    $header = @{"Content-Type" = "audio/mpeg"}
    Invoke-RestMethod -Uri "https://api.example.com/media/test/test.mp3" -Method Put -InFile $filePath -Headers $header
    
  • 永久修改系统编码为 UTF-8
    打开「控制面板」→「区域」→「管理」选项卡 → 点击「更改系统区域设置」→ 勾选「Beta 版:使用 Unicode UTF-8 提供全球语言支持」,重启电脑后终端默认就会使用 UTF-8 编码,无需每次手动修改即可直接执行带非英文字符路径的 curl 命令。

内容的提问来源于stack exchange,提问作者easysaesch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:39:02