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

时间:2016-06-05 19:27:44

标签: go unicode

如何在golang中将全角字符转换为ascii字符。我的程序中的输入是全宽数字,我需要对它们运行一些计算,所以我假设我必须编写如下的转换函数,在开始映射字节之前,我想知道这是否确实在标准中可用去图书馆

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

expected == convert(fullWidth)

1 个答案:

答案 0 :(得分:6)

您可以使用width.Transformer包的golang.org/x/text进行转换,但标准库没有此功能。 x/text是许多官方子库之一,其兼容性要求较弱(请参阅here)。

示例:

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)
}