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
原创文章,版权所有,转载请保留原文链接。

发表评论

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