發出Golang HTTP 請求時到微軟翻譯API (https://msdn.microsoft.com/en-us/library/dn876735.aspx),您在嘗試解群組JSON 回應時收到錯誤:
err = json.Unmarshal(body, &transTransform)
尋找無效字元「ï」值的開始
儘管JSON 數據在作為字符串打印時看起來有效,但響應數據與使用生成的數據之間的比較json.Marshal 揭示差異。
伺服器回應包含帶有位元組順序標記 (BOM) 的 UTF-8 文字字串,該字串將文字標識為 UTF-8 編碼。但是,在解碼之前必須刪除此 BOM。為此,請使用以下行:
body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf")) // Or []byte{239, 187, 191}
錯誤訊息中出現的字元 ï 是將 UTF-8 BOM 解釋為 ISO-8859- 的結果1 個字串。
刪除 BOM,JSON 資料可以成功解組為 TransformTextResponse 資料結構。
以上是為什麼我的 Golang JSON 解組失敗,並出現 Microsoft Translator API 中的「無效字元 \'ï\'\」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!