golang对字符串的储存是以UTF-8进行储存的

go语言中len()函数可以获取 数组、数组切片,以及ASCII型字符串(如不含汉字)的长度,而字符串因为在go语言中是以utf-8形式储存。所以:

  	str1 := "代码"
	str2 := "代码使我快乐"

	//len
	fmt.Println(len(str1)) //length;6
	fmt.Println(len(str2)) //length: 18

	//utf8
	fmt.Println(utf8.RuneCountInString(str1)) //length;2
	fmt.Println(utf8.RuneCountInString(str2)) //length: 6
中文汉字在utf-8中到底占几个字节,一般是3个字节,最常见的编码方式是:1110xxxx 10xxxxxx 10xxxxxx

中文汉字:

字节数 : 2;编码:GB2312

字节数 : 2;编码:GBK

字节数 : 2;编码:GB18030

字节数 : 1;编码:ISO-8859-1

字节数 : 3;编码:UTF-8

字节数 : 4;编码:UTF-16

字节数 : 2;编码:UTF-16BE

字节数 : 2;编码:UTF-16LE