Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menormalkan Input Teks Bukan ASCII kepada ASCII Menggunakan Pustaka Standard Go?

Bagaimana untuk Menormalkan Input Teks Bukan ASCII kepada ASCII Menggunakan Pustaka Standard Go?

Linda Hamilton
Linda Hamiltonasal
2024-10-24 07:22:02611semak imbas

How to Normalize Non-ASCII Text Input to ASCII Using the Go Standard Library?

Menormalkan Input Teks kepada ASCII

Banyak aplikasi memerlukan keupayaan untuk menghuraikan input pengguna dan mengenal pasti ralat penulisan. Walau bagaimanapun, pengendalian aksara bukan ASCII, seperti petikan kerinting, boleh menjadi satu cabaran.

Penggantian Rentetan dengan stdlib

Satu pendekatan biasa ialah menggunakan penggantian rentetan dengan fungsi seperti bait.Ganti. Walaupun berkesan untuk aksara tertentu yang diketahui, kaedah ini boleh membosankan untuk mengendalikan pelbagai aksara.

Menggunakan Strings.Map Function

Pustaka standard Go menyediakan penyelesaian yang lebih serba boleh dengan rentetan.Fungsi Peta. Fungsi ini membolehkan pemetaan rune (titik kod Unicode) ke rune lain. Dengan mentakrifkan fungsi pemetaan tersuai, anda boleh menukar aksara bukan ASCII kepada persamaan ASCIInya.

Contoh

<code class="go">import (
    "fmt"
    "strings"
)

func normalize(in rune) rune {
    switch in {
    case '“', '‹', '”', '›':
        return '"'
    case '‘', '’':
        return '\''
    }
    return in
}

func main() {
    data := "Hello “Frank” or ‹François› as you like to be ‘called’"
    fmt.Printf("Original: %s\n", data)
    cleanedData := strings.Map(normalize, data)
    fmt.Printf("Cleaned: %s\n", cleanedData)
}</code>

Output:

Original: Hello “Frank” or ‹François› as you like to be ‘called’
Cleaned: Hello "Frank" or "François" as you like to be 'called'

Atas ialah kandungan terperinci Bagaimana untuk Menormalkan Input Teks Bukan ASCII kepada ASCII Menggunakan Pustaka Standard Go?. 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