一侧的字符串来自服务器抓取,因此它们可能不同,但看起来相同:
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>
为什么它们不同 (==) ?
一侧的字符串来自服务器抓取,因此它们可能不同,但看起来相同:
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>
为什么它们不同 (==) ?
第一个字符串的开头包含一个LEFT-TO-RIGHT MARK 。这在您打印字符串时不可见,但这确实意味着字符串不同。比较在字符串上调用bytes或的结果。chars
在处理字符串之前,您需要将其剥离。