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

PowerShell调用Google Maps Geocode API地址显示问号乱码问题求助

解决PowerShell调用Google Maps Geocode API的乱码问题

你的乱码问题根源在于Invoke-WebRequest默认错误识别了响应的编码格式。Google返回的JSON是UTF-8编码,但旧版PowerShell(如5.1)会默认用ISO-8859-1解析响应,导致特殊字符(比如ü)变成乱码。后续的编码转换操作已经无法修复,因为字符串在解析阶段就已经损坏了。

直接修改脚本,先确保用UTF-8正确解码响应内容,再转换为JSON对象:

$API    = "<That is secret>"
$LatLng = "47.5560960732389,7.5917686522"
$URL = "https://maps.googleapis.com/maps/api/geocode/json?latlng=$LatLng&key=$API"

# 发送请求并获取原始字节流,用UTF-8解码
$response = Invoke-WebRequest -Uri $URL -Method Get -UseBasicParsing
$jsonContent = [Text.Encoding]::UTF8.GetString($response.Content)
$Result = $jsonContent | ConvertFrom-Json

if($Result.status -eq "OK")
{
    $Result.results.formatted_address
    Write-Host "------------------------------------"
    $Result.results.formatted_address[0]
}

关键说明:

  • 跳过Invoke-WebRequest自带的内容解析,直接拿原始字节$response.Content,用UTF-8解码成字符串后再传给ConvertFrom-Json,从根源避免编码错误。
  • 不需要额外的编码转换操作,因为字符串已经是正确的UTF-8格式了。

如果使用PowerShell 7+,这个问题会自动解决,因为PS7默认用UTF-8处理HTTP响应。但在PS5.1及更早版本中,必须手动指定编码解码步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:10:31