【发布时间】:2019-02-09 11:36:59
【问题描述】:
是否有可以将Sjöström 作为输入并返回Sjostrom 作为输出的 Go 库?
【问题讨论】:
是否有可以将Sjöström 作为输入并返回Sjostrom 作为输出的 Go 库?
【问题讨论】:
您可以使用golang.org/x/text/unicode/norm 来处理此问题。
package main
import (
"fmt"
"io/ioutil"
"strings"
"unicode"
"golang.org/x/text/transform"
"golang.org/x/text/unicode/norm"
)
func main() {
isMn := func(r rune) bool {
return unicode.Is(unicode.Mn, r) // Mn: nonspacing marks
}
t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC)
r := strings.NewReader("Sjöström")
x := transform.NewReader(r, t)
b, err := ioutil.ReadAll(x)
if err != nil {
panic(err)
}
fmt.Println(string(b))
}
【讨论】: