How can I remove all diacritics from the given UTF8 encoded string using Go? e.g. transform the string "žůžo" => "zuzo". Is there a standard way?

推荐答案

您可以使用Text normalization in 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)
}

Go相关问答推荐

如何处理Firestore的DataTo方法中的嵌套指针?

你能帮我优化一个golang代码关于函数CrossPointTwoRect

使用ciph.AEAD.Seal()查看内存使用情况

如何使用中间件更改http请求的响应代码?

Golang String

go aws-lambda 与 terraform 中的 exec 格式错误

我们如何保证取消的上下文会导致 goroutine 终止?

如何使用 Go 代理状态为 OK 的预检请求?

使用自定义处理程序 nats golang 保留订阅方法

如何编写一个以字符串或错误为参数的通用函数?

在 Go 中发送 ack 和 term 后消息仍在 nats 限制队列中

从golang中的url加载图像

Golang Echo Labstack 如何在模板视图中调用函数/方法

K8s 算子读取原始数据

Terraform 自定义提供程序 - 数据源架构

正确编码 JWT

gqlgen go,通过添加一个解析器来减少数据库调用

gob 解码器仅返回数组中的第一个元素

如何将实际上是类型为 reflect.Int32 的类型切片的 interface{} 转换为 int32 的切片?

有没有办法在golang中映射一组对象?