在 Go 中删除变音符号
使用 UTF8 编码的字符串时,可能需要删除变音符号,例如“žůžo”中的重音符号” 得到“zuzo”。为了有效地处理此类场景,Go 中提供了标准库和技术。
一种方法涉及利用 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) }
此代码通过应用一系列转换来删除变音符号:
因此,输出将是一个去除了变音符号的字符串,如示例所示: "žůžo" =>; “zuzo”。
以上是如何在 Go 中高效删除 UTF-8 字符串中的变音符号?的详细内容。更多信息请关注PHP中文网其他相关文章!