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

fuz*_*fuz 2 unicode terminal go rune

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

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

Tim*_*per 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
}
Run Code Online (Sandbox Code Playgroud)