Issue #9883 has been updated by Nobuyoshi Nakada.

Description updated
Status changed from Open to Closed

----------------------------------------
Bug #9883: Different behaviour between `==` and hash key lookup regarding multibyte character fragment
https://bugs.ruby-lang.org/issues/9883#change-46972

* Author: Tsuyoshi Sawada
* Status: Closed
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: 2.1
* Backport: 
----------------------------------------
This question is reported in stackoverflow (http://stackoverflow.com/questions/23946127). When a multibyte character is split by `slice`, `==` ignores the split fragment of the character, while key lookup on hash does not:

~~~ruby
s1 = "”Ēxxxxxxxxxxxxxxxxxxxxxxxx".slice(1, 24)
s2 = "xxxxxxxxxxxxxxxxxxxxxxxx"

s1 == s2          # => true
{s2=>""}.key?(s1) # => false
~~~
This is inconsistent, and I believe either of the above two is a bug. If itis not a bug, but intended, then it is misleading, and I propose the feature should be changed.




-- 
https://bugs.ruby-lang.org/