我正在比较字符串,有以下几点:请注意,NEW 前面的 “是不同的。现在,当像这样调用我的函数时:my_func(a[18:], b[18:])结果字符串令人惊讶:我该怎么做才能把这个奇怪的符号剪掉,为什么它表现得像这样?
2 回答
森栏
TA贡献1810条经验 获得超5个赞
因为这种类型的引号是多字节字符,并且您正在将字符串拆分在字符的中间。您可以做的是转换为,然后转换回来:[]rune
https://play.golang.org/p/pw42sEwRTZd
s := "H界llo"
fmt.Println(s[1:3]) // ��
fmt.Println(string([]rune(s)[1:3])) // 界l
慕的地10843
TA贡献1785条经验 获得超8个赞
另一个选项是软件包:utf8string
package main
import "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
- 2 回答
- 0 关注
- 82 浏览
添加回答
举报
0/150
提交
取消