SomeObject.find(20).client.full_name.downcase.bytes.each {| B |把b}
=> “błażejewsk” OtherClass.find(36).client.downcase.bytes.each {| b |把b}
=> “bŁaŻejewsk”
如您所见,两个字符串中的特殊字符都有不同的字节。 这两个字符串都有编码:UTF-8,所以force_encoding或类似的东西都无济于事。 ==返回false。我应该如何转换这些字符串,以便从比较中得到真实的结果?
答案 0 :(得分:1)
它不适用于downcase
,请参阅http://www.ruby-doc.org/core-2.1.0/String.html#method-i-downcase-21
返回str的副本,所有大写字母都替换为小写字母。该操作是区域设置不敏感的 - 只有字符“A”到“Z”受到影响。注意:案例替换仅在ASCII区域有效。
请参阅此问题以正确地缩写UTF-8字符串Ruby 1.9: how can I properly upcase & downcase multibyte strings?