在Go中是否有与wcwidth()函数相同的功能?

时间:2015-01-01 03:52:44

标签: unicode go terminal rune

POSIX函数wcwidth()在终端上打印时计算给定wchar_t的宽度。例如,wcwidth(L'A')返回1wcwidth(L'字')返回2等。还有一个函数wcswidth()计算整个字符串的宽度 - 这是如果存在组合重音,则非常有用。

Go标准库或补充库中是否存在类似的功能?如果没有,是否有一种简单的方法可以使某些东西足够相似?

1 个答案:

答案 0 :(得分:6)

  

Go标准库或补充库中是否存在类似的功能?

我认为最受欢迎的图书馆是go-runewidth

示例:

package main

import (
  "github.com/mattn/go-runewidth"
)

func main() {
  println(runewidth.StringWidth("A"))   // prints 1
  println(runewidth.StringWidth("字"))  // prints 2
}