Project

General

Profile

Actions

Bug #9883

closed

Different behaviour between `==` and hash key lookup regarding multibyte character fragment

Added by sawa (Tsuyoshi Sawada) over 10 years ago. Updated over 10 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
2.1
Backport:
[ruby-core:62848]

Description

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.


Related issues 1 (0 open1 closed)

Is duplicate of Ruby master - Bug #9882: Issue with hash string keysClosed05/30/2014Actions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0