將文字輸入規範化為ASCII:另一種方法
處理不同的字元集時,將文字輸入規範化為ASCII 對於確保一致的數據處理和分析。在這種情況下,使用者的輸入可能包含非 ASCII 字符,例如大引號,這可能會阻礙有效的解析和標記寫入陷阱。
目前的方法涉及手動將特定字元序列替換為其 ASCII 等效項。然而,Go 標準庫中有一個更通用的解決方案:strings.Map 函數。
strings.Map 函數
strings.Map 函數提供了一個將符文(Unicode 程式碼點)對應到其他符文的可自訂機制。這允許有效的字元規範化和轉換。在這種情況下,您可以定義一個映射函數,將非 ASCII 字元轉換為其等效的 ASCII 字元。
範例實作
以下範例示範如何使用字串.Map 函數用於規範化文字輸入:
<code class="go">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) } func normalize(in rune) rune { switch in { case '“', '‹', '”', '›': return '"' case '‘', '’': return '\'' } return in }</code>
輸出
原文:Hello “Frank” 或
清理:你好“Frank”或“François”,因為你喜歡被“稱為”
在此範例中,規範化函數將大引號和單大引號對應到其ASCII 對應項,從而產生規範化字串。
使用strings.Map 的優點
使用strings.Map 函數有幾個優點:
以上是如何使用 Go 的 strings.Map 函數將文字輸入標準化為 ASCII?的詳細內容。更多資訊請關注PHP中文網其他相關文章!