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

Wix商店API集成:提交产品时变音符号丢失问题求助

解决Wix API提交产品时变音符号丢失的问题

问题核心

你遇到的问题本质是PowerShell的Invoke-WebRequest默认编码与请求头声明的UTF-8不匹配:虽然你尝试在请求头里指定了UTF-8,但单独的charset字段不符合HTTP标准写法,且Invoke-WebRequest默认会用系统编码(如Windows-1252)处理字符串格式的请求体,导致带变音符号的字符在传输时被错误编码,服务器端无法正确解析。

修复方案

1. 修正Content-Type头格式

将Content-Type设置为application/json; charset=utf-8,把charset参数合并到Content-Type头中(这是HTTP标准的写法,单独的charset头可能不被Wix服务器识别)。

2. 强制用UTF-8编码请求体

ConvertTo-Json输出的是字符串,Invoke-WebRequest处理字符串时会默认使用系统编码,而非UTF-8。需要手动将JSON字符串转换为UTF-8字节数组后再发送,确保传输的编码与声明一致。

修改后的代码示例

$headers  = @{
    "Content-Type"  = "application/json; charset=utf-8"
    "Authorization" = "$auth"
}

# 构建产品对象逻辑保持不变
$obj = @{
    "product" = @{
        "name" = [string]($product.name)
    }
    # 其他产品字段...
}

# 转换为JSON字符串
$bodyJson = $obj | ConvertTo-Json -Depth 3
# 转换为无BOM的UTF-8字节数组
$bodyBytes = [System.Text.Encoding]::UTF8.GetBytes($bodyJson)

# 发送请求
Invoke-WebRequest -Headers $headers -Uri $url -Method POST -Body $bodyBytes

额外验证步骤

  • 确认本地$product.name的字符编码正确:可以用$product.name | Format-Hex查看字节值,验证变音符号对应的UTF-8字节是否合规(比如德语ä对应字节C3 A4)。
  • 如果上述方案仍无效,再排查Wix API文档确认是否对产品名称有特殊字符限制,但大概率是请求编码问题导致的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:25:15