JSON 応答の UTF-8 バイト オーダー マークが無効です
JSON を使用して Microsoft Translator からの応答をデコード中に、次のエラーが発生しました無効な文字。 JSON メッセージには、文字 ï' (ASCII コード 239) で表される Unicode バイト オーダー マーク (BOM) が含まれており、アンマーシャリング中に問題が発生していました。
バイト オーダー マークについて
Unicode BOM は、テキスト ファイルのエンコーディングを識別する特殊な文字シーケンスです。ただし、JSON 応答には必要なく、デコード時に複雑な問題が発生する可能性があります。
問題の解決
無効な文字エラーを処理するには、BOM を削除する必要があります。 JSON データをアンマーシャリングする前に応答から取得します。これは、次のコードを使用して実現できます:
body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf")) // Or []byte{239, 187, 191}
この行は、応答本文の先頭から BOM が存在する場合はそれを削除し、JSON データを正しくアンマーシャリングできるようにします。
注: 「値の始まりを探している文字が無効です」というエラー メッセージは、BOM が次のように解釈されたことを意味します。 ISO-8859-1 文字。これにより、デコードされた JSON に無効な文字が表示されます。
以上がMicrosoft Translator からの「JSON 応答内の無効な UTF-8 バイト オーダー マーク」を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。