在 go 中创建子字符串可创建一种新的符号

我正在比较字符串,有以下几点:

http://img.mukewang.com/6315646600017d1203500047.jpg

请注意,NEW 前面的 “是不同的。

现在,当像这样调用我的函数时:

my_func(a[18:], b[18:])

结果字符串令人惊讶:

http://img4.mukewang.com/631564700001b30d02470050.jpg

我该怎么做才能把这个奇怪的符号剪掉,为什么它表现得像这样?


米琪卡哇伊
浏览 83回答 2
2回答

森栏

因为这种类型的引号是多字节字符,并且您正在将字符串拆分在字符的中间。您可以做的是转换为,然后转换回来:[]runehttps://play.golang.org/p/pw42sEwRTZds := "H界llo"fmt.Println(s[1:3])                 // ��fmt.Println(string([]rune(s)[1:3])) // 界l

慕的地10843

另一个选项是软件包:utf8stringpackage mainimport "golang.org/x/exp/utf8string"func main() {   s := utf8string.NewString(` 'Not Available') “NEW CREDIT" FROM customers;`)   t := s.Slice(18, s.RuneCount())   println(t == `“NEW CREDIT" FROM customers;`)}https://pkg.go.dev/golang.org/x/exp/utf8string
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go