计算golang字符串中的字符

I am trying to count "characters" in go. That is, if a string contains one printable "glyph", or "composed character" (or what someone would ordinarily think of as a character), I want it to count 1. For example, the string "Hello, 世

I wrote a package that allows you to do this: https://github.com/rivo/uniseg. It breaks strings according to the rules specified in Unicode Standard Annex #29 which is what you are looking for. Here is how you would use it in your case:

package main

import (
"fmt"

"github.com/rivo/uniseg"

)

func main() {
fmt.Println(uniseg.GraphemeClusterCount("Hello, 世

Reference to the example of API document. https://golang.org/pkg/unicode/utf8/#example_DecodeLastRuneInString

package main

import (
"fmt"
"unicode/utf8"
)

func main() {
str := "Hello, 世

Have you tried strings.Count?

package main

import (
"fmt"
"strings"
)

func main() {
fmt.Println(strings.Count("Hello, 世