From: nobu@... Date: 2014-05-30T06:30:58+00:00 Subject: [ruby-core:62853] [ruby-trunk - Bug #9883] [Closed] Different behaviour between `==` and hash key lookup regarding multibyte character fragment 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 it is not a bug, but intended, then it is misleading, and I propose the feature should be changed. -- https://bugs.ruby-lang.org/