テキスト入力を 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>
出力
原文: こんにちは、「フランク」または「フランソワ」と呼んでください
Cleaned: Hello "Frank" または "François" と呼んでください
この例では、正規化関数は中引用符と一重引用符を対応する ASCII 文字列にマッピングし、正規化された文字列を生成します。
strings.Map を使用する利点
strings.Map 関数を使用すると、次のような利点があります。
以上がGo の strings.Map 関数を使用してテキスト入力を ASCII に正規化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。