如何在Golang中将全角数字转换为Ascii?

3

如何在Golang中将全角字符转换为ASCII字符。我的程序输入是全角数字,我需要对它们进行一些计算,因此我认为我必须编写一个转换函数,如下所示。在开始映射字节之类的操作之前,我想知道这是否确实可以在标准的Go库中使用。

fullWidth:="123"
expected := "123"
func convert(input string) string {
// body
}

expected == convert(fullWidth)
1个回答

7
您可以使用width.Transformer,该转换器属于golang.org/x/text包,用于进行转换,但标准库不具备此功能。 x/text是许多官方子存储库之一,其兼容性要求较弱(请参见此处)。
示例:
package main

import (
    "fmt"
    "golang.org/x/text/width"
)

func main() {
    s := "123"
    n := width.Narrow.String(s)
    fmt.Printf("%U: %s\n", []rune(s), s)
    fmt.Printf("%U: %s\n", []rune(n), n)
}

我现在已经让它工作了,但是很好奇为什么它在playground中不起作用 https://play.golang.org/p/ZXLbG7hDMw" prog.go:5:5: 找不到包"golang.org/x/text/width" - aarti
2
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - nemo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接