Go で発音記号を削除する
UTF8 でエンコードされた文字列を操作する場合、「žůžo」のアクセントなどの発音記号を削除する必要がある場合があります。 」で「ズゾ」となります。このようなシナリオを効率的に処理するために、Go で利用できる標準ライブラリとテクニックがあります。
1 つのアプローチには、unicode.Is() 関数を利用して発音記号 (非スペース記号の「Mn」として分類される文字) を識別することが含まれます。
次のコード スニペットは、unicode/norm と golang.org/x/text/transform を利用して特定の文字列から発音記号を削除する方法を示しています。パッケージ:
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) }
このコードは、一連の変換を適用することで発音記号を削除します:
その結果、出力は例のように、発音記号が取り除かれた文字列になります。 「ズゾ」。
以上がGo で UTF-8 文字列から発音記号を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。