From: phasis@... Date: 2014-05-30T04:27:17+00:00 Subject: [ruby-core:62849] [ruby-trunk - Bug #9883] Different behaviour between `==` and hash key lookup regarding multibyte character fragment Issue #9883 has been updated by Heesob Park. This issue is a duplicate of Bug #9882. And already solved with changeset r46243. ---------------------------------------- Bug #9883: Different behaviour between `==` and hash key lookup regarding multibyte character fragment https://bugs.ruby-lang.org/issues/9883#change-46968 * Author: Tsuyoshi Sawada * Status: Open * 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: 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 it is not a bug, but intended, then it is misleading, and I propose the feature should be changed. -- https://bugs.ruby-lang.org/