Fork me on GitHub

Go语言开发-字符串-utf8包

3.6.3. utf8包

unicode/utf8包提供了一些用来查询和操作UTF-8编码的字符串和[]byte切片的函数,参见表3.10。之前我们介绍了如何使用utf8.DecodeRuneInString() 和utf.DecodeLastRuneInString()函数来获取字符串的第一个和最后一个字符。

表3.10 utf8包中的函数

需导入unicode/utf8包,变量b是[]byte类型,s是string类型,c是rune类型的Unicode码点

utf8. DecodeLastRune(b)返回b的最后一个rune值和它所占用的字节数;如果b不是以一个有效的rune值结尾,返回U+FFFD(字符?的Unicode)和0
utf8.DecodeLastRuneInString(s)同上,但接受的是字符串作为参数
utf8.DecodeRune(b)返回b的第一个rune值和它所占用的字节数;如果b不是以一个有效的rune值开头,返回U+FFFD(字符?的Unicode)和0
utf8.DecodeRuneInString(s)同上,但接受的是字符串作为参数
utf8.EncodeRune(b, c)以UTF-8字节的形式将c写入b(b必须有足够的空间)并返回写入的字节数
utf8.FullRune(b)如果b以一个UTF-8编码的rune开头,则返回true
utf8.FullRuneInString(s)如果s以一个UTF-8编码的rune开头,则返回true
utf8.RuneCount(b)返回b中rune的个数,如果b含有非ASCII字符,结果可能小于len(b)
utf8.RuneCountInString(s)返回s中rune的个数,如果s含有非ASCII字符,结果可能小于len(s)
utf8.RuneLen(c)编码c需要的字节数
utf8.RuneStart(x)如果字节x可以作为rune的第一个字节,则返回true
utf8.Valid(b)如果b中的字节可以表示为合法的UTF-8编码的rune,则返回true
utf8.ValidString(s)如果s中的字节可以表示为合法的UTF-8编码的rune,则返回true

目录


作者:Johnson
原创文章,版权所有,转载请保留原文链接。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注