ホームページ > バックエンド開発 > Golang > JSON Unmarshal での「無効な文字 \'ï\' が値の先頭を探しています」エラーを修正する方法

JSON Unmarshal での「無効な文字 \'ï\' が値の先頭を探しています」エラーを修正する方法

Susan Sarandon
リリース: 2024-12-02 17:15:15
オリジナル
502 人が閲覧しました

How to Fix

エラー処理: JSON アンマーシャル中の無効な文字エラーの解決

json.Unmarshal を使用して JSON 出力をアンマーシャルしようとしたときに、Microsoft Translator への Web サービス リクエストでエラーが発生しました。発生した具体的なエラーは、「値の先頭を検索する無効な文字 'ï'」でした。

問題の調査

JSON 応答を文字列として検査すると、データが有効であることが明らかになりました。 。ただし、応答のバイト配列と予想されるデータの手動でマーシャリングされたバージョンを比較すると、不一致が明らかになりました。

問題の特定

この不一致は、バイト オーダー マークの存在に起因すると考えられます。 (BOM) が応答に含まれます。 BOM は、テキスト ファイルのエンコーディングを識別する特殊文字です。この場合は UTF-8 です。

解像度

BOM は、JSON 応答をデコードする前に削除する必要があります。これは、次のコード行を使用して実現できます。

body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf")) // Or []byte{239, 187, 191}
ログイン後にコピー

説明

bytes.TrimPrefix 関数は、本文バイト配列の先頭から BOM を削除し、後続の json.Unmarshal を許可します。無効な文字エラーが発生せずに操作を続行できます。

結論

エラーjson.Unmarshal 中に「無効な文字 'ï' が値の始まりを探しています」というエラーが発生するのは、JSON 応答の BOM が原因である可能性があります。 bytes.TrimPrefix 関数を使用して BOM を削除すると、問題が解決され、データが正常にアンマーシャリングされるようになります。

以上がJSON Unmarshal での「無効な文字 \'ï\' が値の先頭を探しています」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート