テキスト入力を ASCII に正規化する
多くのアプリケーションでは、ユーザー入力を解析して書き込みエラーを識別する機能が必要です。ただし、中引用符などの非 ASCII 文字の処理は難しい場合があります。
stdlib を使用した文字列置換
一般的なアプローチの 1 つは、関数を使用して文字列置換を使用することです。バイトのようなものです。置き換えます。このメソッドは、特定の既知の文字には効果的ですが、さまざまな文字を処理するには面倒な場合があります。
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 中国語 Web サイトの他の関連記事を参照してください。