1

一侧的字符串来自服务器抓取,因此它们可能不同,但看起来相同:

irb(main):013:0> "‎italy" == "italy"
=> false

我检查了编码,它是一样的

irb(main):014:0> "‎italy".encoding === "italy".encoding
=> true

irb(main):016:0> "‎italy".encoding
=> #<Encoding:UTF-8>

为什么它们不同 (==) ?

4

1 回答 1

2

第一个字符串的开头包含一个LEFT-TO-RIGHT MARK 。这在您打印字符串时不可见,但这确实意味着字符串不同。比较在字符串上调用bytes或的结果。chars

在处理字符串之前,您需要将其剥离。

于 2021-07-27T16:02:08.863 回答