Go 標準ライブラリを使用して非 ASCII テキスト入力を ASCII に正規化する方法

Linda Hamilton
リリース: 2024-10-24 07:22:02
オリジナル
625 人が閲覧しました

How to Normalize Non-ASCII Text Input to ASCII Using the Go Standard Library?

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

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!