首頁  >  文章  >  後端開發  >  如何使用 Go 標準函式庫將非 ASCII 文字輸入規範化為 ASCII?

如何使用 Go 標準函式庫將非 ASCII 文字輸入規範化為 ASCII?

Linda Hamilton
Linda Hamilton原創
2024-10-24 07:22:02611瀏覽

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

將文字輸入規範化為 ASCII

許多應用程式需要能夠解析使用者輸入並識別書寫錯誤。但是,處理非 ASCII 字元(例如大引號)可能是一個挑戰。

使用 stdlib 進行字串替換

一種常見的方法是使用函數進行字串替換就像位元組一樣。替換。雖然對於特定的已知字元有效,但此方法對於處理各種字元可能很乏味。

使用 Strings.Map 函數

Go 標準函式庫提供了更通用的解決方案使用 strings.Map 函數。此函數允許將符文(Unicode 程式碼點)對應到其他符文。透過定義自訂映射函數,您可以將非 ASCII 字元轉換為其等效的 ASCII 字元。

範例

<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>

輸出:

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

以上是如何使用 Go 標準函式庫將非 ASCII 文字輸入規範化為 ASCII?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn