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

如何解决Azure DevOps Git Get Item API返回Unicode内容乱码问题?

解决Azure DevOps Git Items API获取UTF-8文件乱码问题

导致乱码的原因有两个:一是Azure DevOps Git Items API默认会将文件内容以base64编码形式封装在JSON结构中返回,二是你设置的ContentType参数不符合文本文件的请求场景。

按以下任一方案修改代码即可解决:

方案一:通过URL参数指定返回纯文本

在请求URL末尾追加&$format=text,同时移除不必要的ContentType参数:

$uri = "http://devserver/defaultcollection/3e100875-e1dc-4aa4-a9d0-0e97af8a1634/_apis/git/repositories/f26ea979-3786-4bca-965e-0481c07ff9a9/items/Notes%2FREADME.md?versionType=Commit&version=26613c4596f233b0f48ea0f407465d941f0a4144&api-version=7.0&$format=text"
$headers = @{ Authorization = "Basic $encodedPAT" }

$fileContent = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get

方案二:通过请求头指定接受纯文本

若不想修改URL,可在请求头中添加Accept字段,明确要求返回UTF-8编码的纯文本:

$uri = "http://devserver/defaultcollection/3e100875-e1dc-4aa4-a9d0-0e97af8a1634/_apis/git/repositories/f26ea979-3786-4bca-965e-0481c07ff9a9/items/Notes%2FREADME.md?versionType=Commit&version=26613c4596f233b0f48ea0f407465d941f0a4144&api-version=7.0"
$headers = @{ 
    Authorization = "Basic $encodedPAT"
    Accept = "text/plain; charset=utf-8"
}

$fileContent = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get

补充说明

之前的代码中,API返回的是包含base64编码内容的JSON对象,直接输出会导致PowerShell错误解析编码,从而出现乱码。上述两种方案都会让API直接返回原始UTF-8文本,PowerShell会自动完成正确解码,最终得到和仓库中一致的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:20:26