ホームページ >バックエンド開発 >Golang >Go で UTF-8 文字列から発音記号を削除するにはどうすればよいですか?

Go で UTF-8 文字列から発音記号を削除するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-09 01:53:111057ブラウズ

How to Remove Diacritics from UTF-8 Strings in Go?

テキスト正規化ライブラリを使用して Go で発音記号を削除する

Go で UTF8 でエンコードされた文字列から発音記号を簡単に削除するにはどうすればよいですか?たとえば、文字列 "žůžo" を "zuzo" に変換します。

解決策:

幸いなことに、Go は Unicode を含むテキストの正規化を処理するさまざまな標準ライブラリを提供しています。正規化と発音記号の削除。これらを効果的に利用する方法は次のとおりです:

package main

import (
    "fmt"
    "unicode"

    "golang.org/x/text/transform"
    "golang.org/x/text/unicode/norm"
)

func isMn(r rune) bool {
    return unicode.Is(unicode.Mn, r) // Mn: nonspacing marks
}

func main() {
    t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC)
    result, _, _ := transform.String(t, "žůžo")
    fmt.Println(result)
}

このコードは、NFD (正規化フォーム D)、Mn 除去、および NFC (正規化フォーム C) アルゴリズムを使用した一連の変換を使用します。この結果、入力文字列からすべての発音記号が効果的に削除されます。

以上がGo で UTF-8 文字列から発音記号を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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