为了账号安全,请及时绑定邮箱和手机立即绑定

包含符文给出奇怪的结果

包含符文给出奇怪的结果

Go
函数式编程 2021-08-16 17:59:26
我在 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'))

正如预期的那样工作。


查看完整回答
反对 回复 2021-08-16
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

因为它不是有效的 unicode 代码点,请查看 strings.IndexRune


func IndexRune(s string, r rune) int {

    switch {

    case r < 0x80:

        .....

    default:

        .....

    }

    return -1

}

如果您尝试utf8.ValidString("\xa0"),它将返回 false。


查看完整回答
反对 回复 2021-08-16
  • 2 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信