首页 >后端开发 >Golang >如何在 Go 中删除 UTF-8 字符串中的变音符号?

如何在 Go 中删除 UTF-8 字符串中的变音符号?

Barbara Streisand
Barbara Streisand原创
2024-12-09 01:53:111063浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn