テキスト入力内の非 ASCII 文字を処理することは、特に非 ASCII 文字を ASCII 文字に正規化することが目的の場合には困難になることがあります。一般的な問題は、まっすぐな引用符ではなく波状引用符が使用された場合に発生します。カスタム文字列置換でこの問題に対処できますが、標準ライブラリはより包括的な解決策を提供します。
strings.Map 関数は、ルーン (Unicode 文字) を他のルーンにマッピングするメカニズムを提供します。このアプローチは、非 ASCII 文字を同等の ASCII 文字に変換するためのカスタマイズ可能な汎用の方法を提供します。
この場合、次のコードは、Map を使用して中引用符を直線引用符に正規化する方法を示しています。
<code class="go">package main import ( "fmt" "strings" ) 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>
Original: Hello “Frank” or ‹François› as you like to be ‘called’ Cleaned: Hello "Frank" or "François" as you like to be 'called'
strings.Map 関数を利用すると、さまざまな非 ASCII 文字を処理するカスタム マッピング ルールを定義でき、すべての入力テキストが必要に応じて同等の ASCII 文字に正規化されるようになります。
以上がstrings.Map 関数を使用して非 ASCII テキスト入力を ASCII に正規化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。