將文字輸入規範化為 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中文網其他相關文章!