Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membetulkan Ralat \'aksara tidak sah \'ï\' mencari permulaan nilai\' dalam JSON Unmarshal?

Bagaimana untuk Membetulkan Ralat \'aksara tidak sah \'ï\' mencari permulaan nilai\' dalam JSON Unmarshal?

Susan Sarandon
Susan Sarandonasal
2024-12-02 17:15:15415semak imbas

How to Fix

Pengendalian Ralat: Menyelesaikan Ralat Aksara Tidak Sah semasa JSON Unmarshal

Permintaan perkhidmatan web kepada Microsoft Translator menghasilkan ralat apabila cuba menyahmarshal output JSON menggunakan json.Unmarshal. Ralat khusus yang dihadapi ialah "aksara tidak sah 'ï' mencari permulaan nilai."

Menyiasat Isu

Setelah memeriksa respons JSON sebagai rentetan, ia menjadi jelas bahawa data kelihatan sah . Walau bagaimanapun, membandingkan tatasusunan bait bagi respons dan versi data yang dijangkakan yang disusun secara manual mendedahkan percanggahan.

Pengenalpastian Masalah

Percanggahan itu dikaitkan dengan kehadiran Tanda Pesanan Bait (BOM) dalam maklum balas. BOM ialah aksara khas yang mengenal pasti pengekodan fail teks, dalam kes ini, UTF-8.

Resolusi

BOM perlu dialih keluar sebelum menyahkod respons JSON. Ini boleh dicapai menggunakan baris kod berikut:

body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf")) // Or []byte{239, 187, 191}

Penjelasan

Fungsi bytes.TrimPrefix mengalih keluar BOM dari permulaan tatasusunan bait badan, membenarkan json.Unmarshal seterusnya operasi untuk diteruskan tanpa menemui aksara yang tidak sah ralat.

Kesimpulan

Ralat "aksara tidak sah 'ï' mencari permulaan nilai" semasa json.Unmarshal boleh disebabkan oleh BOM dalam respons JSON. Mengalih keluar BOM menggunakan bait.Fungsi TrimPrefix menyelesaikan isu dan membolehkan data berjaya dibongkar.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'aksara tidak sah \'ï\' mencari permulaan nilai\' dalam JSON Unmarshal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn