Rumah > pembangunan bahagian belakang > Golang > Bagaimana Cara Terbaik Mengendalikan Unicode Mentah dalam Badan Respons HTTP?

Bagaimana Cara Terbaik Mengendalikan Unicode Mentah dalam Badan Respons HTTP?

Mary-Kate Olsen
Lepaskan: 2024-12-03 14:18:15
asal
346 orang telah melayarinya

How to Best Handle Raw Unicode in HTTP Response Bodies?

Cara Mengendalikan Kandungan Unikod Mentah dalam Badan Respons

Apabila mendapatkan semula data daripada API web menggunakan pustaka net/http, adalah mungkin untuk menghadapi kandungan yang dikodkan sebagai Unicode mentah. Ini menjelma sebagai aksara ASCII dalam badan tindak balas. Untuk mentafsir kandungan sebenar yang tersembunyi di dalamnya, anda perlu menyahkod jujukan Unikod.

Salah satu pendekatan ialah menggunakan fungsi bufio.ScanRunes untuk lelaran melalui titik kod Unikod individu. Walau bagaimanapun, dalam beberapa kes, pendekatan ini mungkin gagal. Kaedah yang lebih dipercayai melibatkan penggunaan alatan seperti pakej json untuk menyahmarshal badan tindak balas ke dalam objek berstruktur. Proses ini mengendalikan penyahkodan Unikod secara automatik, memberikan anda data yang bersih dan mudah digunakan.

Sebagai contoh, anda boleh menggunakan coretan berikut untuk menyahmarshal data JSON yang mengandungi aksara Unikod yang terlepas:

func main() {
    var i interface{}
    err := json.Unmarshal([]byte(src), &i)
    fmt.Println(err, i)
}

const src = `{"forum":{"id":"3251718","name":"\u5408\u80a5\u5de5\u4e1a\u5927\u5b66\u5ba3\u57ce\u6821\u533a","first_class":"\u9ad8\u7b49\u9662\u6821","second_class":"\u5b89\u5fbd\u9662\u6821","is_like":"0","user_level":"1","level_id":"1","level_name":"\u7d20\u672a\u8c0b\u9762","cur_score":"0","levelup_score":"5","member_num":"80329","is_exists":"1","thread_num":"108762","post_num":"3445881","good_classify":[{"class_id":"0","class_name":"\u5168\u90e8"},{"class_id":"1","class_name":"\u516c\u544a\u7c7b"},{"class_id":"2","class_name":"\u5427\u53cb\u4e13\u533a"},{"class_id":"4","class_name":"\u6d3b\u52a8\u4e13\u533a"},{"class_id":"6","class_name":"\u793e\u56e2\u73ed\u7ea7"},{"class_id":"5","class_name":"\u8d44\u6e90\u5171\u4eab"},{"class_id":"8","class_name":"\u6e29\u99a8\u751f\u6d3b\u7c7b"},{"class_id":"7","class_name":"\u54a8\u8be2\u65b0\u95fb\u7c7b"},{"class_id":"3","class_name":"\u98ce\u91c7\u5c55\u793a\u533a"}]}}`
Salin selepas log masuk

Output :

<nil> map[forum:map[levelup_score:5 is_exists:1 post_num:3445881 good_classify:[map[class_id:0 class_name:全部] map[class_id:1 class_name:公告类] map[class_id:2 class_name:吧友专区] map[class_id:4 class_name:活动专区] map[class_id:6 class_name:社团班级] map[class_id:5 class_name:资源共享] map[class_id:8 class_name:温馨生活类] map[class_name:咨询新闻类 class_id:7] map[class_id:3 class_name:风采展示区]] id:3251718 is_like:0 cur_score:0
Salin selepas log masuk

Sebagai alternatif, untuk menyahkod urutan Unikod tertentu tanpa menggunakan perpustakaan pihak ketiga, anda boleh menggunakan fungsi strconv.Unquote():

fmt.Println(strconv.Unquote(`"\u7d20\u672a\u8c0b"`))
Salin selepas log masuk

Output:

素未谋面 <nil>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana Cara Terbaik Mengendalikan Unicode Mentah dalam Badan Respons HTTP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan