我在 Go Playground 中运行此代码:fmt.Println(strings.ContainsRune("\xa0", '\xa0'))我想知道,为什么它输出false?根据文档,它说:如果 Unicode 代码点 r 在 s 内,ContainsRune 返回 true。在我看来,代码点就在那里,它false作为响应给出似乎很奇怪。
2 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
"\x0a" 不是 unicode 代码点。
fmt.Println(strings.ContainsRune("\u00a0", '\u00a0'))
正如预期的那样工作。
人到中年有点甜
TA贡献1895条经验 获得超7个赞
因为它不是有效的 unicode 代码点,请查看 strings.IndexRune
func IndexRune(s string, r rune) int {
switch {
case r < 0x80:
.....
default:
.....
}
return -1
}
如果您尝试utf8.ValidString("\xa0"),它将返回 false。
- 2 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消