一尘不染

使用Go删除变音符号

go

如何使用Go从给定的UTF8编码字符串中删除所有变音符号?例如,转换字符串"žůžo"=> "zuzo"。有没有标准的方法?


阅读 234

收藏
2020-07-02

共1个答案

一尘不染

您可以使用Go中的文本规范化中描述的库。

这是这些库的应用程序:

// Example derived from: http://blog.golang.org/normalization

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)
}
2020-07-02