前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go-标准库-text(三)

Go-标准库-text(三)

原创
作者头像
堕落飞鸟
发布2023-04-22 09:39:24
2530
发布2023-04-22 09:39:24
举报
文章被收录于专栏:飞鸟的专栏

Unicode处理

text包中还提供了一些用于Unicode处理的函数和数据结构,例如UTF8Reader、Valid等。

UTF8Reader

UTF8Reader是一个用于读取UTF-8编码的Reader对象,可以用于从UTF-8编码的文本中逐个读取Unicode字符。

代码语言:javascript
复制
package main

import (
	"fmt"
	"strings"
	"text/utf8"
)

func main() {
	s := "Hello, 世界"
	reader := strings.NewReader(s)
	for {
		r, size, err := utf8.ReadRune(reader)
		if err != nil {
			break
		}
		fmt.Printf("%c (%d bytes)\n", r, size)
	}
}

在这个例子中,我们定义了一个包含英文和中文字符的字符串s,并使用strings.NewReader函数创建了一个Reader对象。然后使用utf8.ReadRune函数从Reader对象中逐个读取Unicode字符,并输出每个字符及其占用的字节数。

Valid

Valid函数用于检查一个字节数组是否包含一个合法的UTF-8编码的字符串。

代码语言:javascript
复制
package main

import (
	"fmt"
	"text/utf8"
)

func main() {
	s1 := []byte("Hello, 世界")
	s2 := []byte{0xff, 0xfe, 0xfd}
	fmt.Println(utf8.Valid(s1)) // Output: true
	fmt.Println(utf8.Valid(s2)) // Output: false
}

在这个例子中,我们定义了两个字节数组s1和s2,分别包含一个合法的UTF-8编码的字符串和一个非法的字节序列。使用utf8.Valid函数检查这两个字节数组中是否包含合法的UTF-8编码的字符串,并输出检查结果。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Unicode处理
    • UTF8Reader
      • Valid
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档