如何在golang中将全角字符转换为ascii字符。我的程序中的输入是全宽数字,我需要对它们运行一些计算,所以我假设我必须编写如下的转换函数,在开始映射字节之前,我想知道这是否确实在标准中可用去图书馆
fullWidth:="123"
expected := "123"
func convert(input string) string {
// body
}
expected == convert(fullWidth)
答案 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)
}