Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengeluarkan Aksara UTF-8 Tidak Sah daripada Rentetan dalam Go?

Bagaimana untuk Mengeluarkan Aksara UTF-8 Tidak Sah daripada Rentetan dalam Go?

Patricia Arquette
Lepaskan: 2024-12-16 21:02:11
asal
523 orang telah melayarinya

How to Remove Invalid UTF-8 Characters from Strings in Go?

Mengalih keluar Aksara UTF-8 Tidak Sah daripada Strings in Go

Apabila cuba menyusun senarai rentetan menggunakan json.Marshal, adalah mungkin untuk menghadapi ralat yang menunjukkan kehadiran aksara UTF-8 yang tidak sah. Artikel ini menangani isu ini dan menyediakan penyelesaian untuk mengalih keluar atau menggantikan aksara sedemikian dalam Go.

Dalam Python, modul unicode menawarkan kaedah seperti unicode.replace dan unicode.strict untuk mengendalikan aksara tidak sah. Walau bagaimanapun, Go tidak mempunyai persamaan langsung. Sebaliknya, ia bergantung pada pendekatan yang berbeza:

Menggunakan rentetan.ToValidUTF8 dalam Go 1.13

Untuk mengalih keluar aksara UTF-8 yang tidak sah daripada rentetan, anda boleh menggunakan rentetan .Fungsi ToValidUTF8 diperkenalkan dalam Go 1.13. Ia memerlukan dua parameter: rentetan input dan aksara gantian untuk digunakan bagi bait yang tidak sah. Jika aksara gantian ialah rentetan kosong, bait yang tidak sah akan dialih keluar secara senyap:

invalidString := "a\xc5z"
validString := strings.ToValidUTF8(invalidString, "")
// validString will now be "az"
Salin selepas log masuk

Menggunakan rentetan.Map dan utf8.RuneError in Go 1.11

Alternatif penyelesaiannya ialah menggunakan strings.Map bersama-sama dengan utf8.RuneError. strings.Map menggunakan fungsi pada setiap rune dalam rentetan, manakala utf8.RuneError mewakili aksara UTF-8 yang tidak sah. Berikut ialah contoh:

invalidString := "a\xc5z"

fixUtf := func(r rune) rune {
    if r == utf8.RuneError {
        return -1 // Replace invalid characters with -1
    }
    return r
}

validString := strings.Map(fixUtf, invalidString)
fmt.Println(validString) // Output: "az"
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Aksara UTF-8 Tidak Sah daripada Rentetan dalam Go?. 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