ホームページ >バックエンド開発 >Golang >strings.Map 関数を使用して非 ASCII テキスト入力を ASCII に正規化する方法

strings.Map 関数を使用して非 ASCII テキスト入力を ASCII に正規化する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-24 07:24:02816ブラウズ

How to Normalize Non-ASCII Text Input to ASCII Using the strings.Map Function?

テキスト入力を ASCII に正規化する

テキスト入力内の非 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。