Issue #14055 has been updated by shyouhei (Shyouhei Urabe).

Status changed from Open to Rejected

Yes, we have unicode-aware case folding.  But the problem is, because String#casecmp returns either -1, 0, or 1, we need to define a total ordering of strings in case-insensitive manner. It's pretty difficult (if not impossible).

If you are not interested in sorting strings but only for comparison, you can use String#casecmp? method (note the "?").  See also: https://bugs.ruby-lang.org/issues/12786

----------------------------------------
Feature #14055: String#casecmp should use Unicode folding
https://bugs.ruby-lang.org/issues/14055#change-67595

* Author: rbjl (Jan Lelis)
* Status: Rejected
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
The following string and symbol methods are currently only ASCII aware:

- String#casecmp
- String#casecmp!
- Symbol#casecmp
- Symbol#casecmp!

For example:

    "a".casecmp("A") #=> 0
    "".casecmp("") #=> 1

Now that Ruby has implemented case-folding (which is meant for comparing strings, see http://unicode.org/faq/casemap_charprop.html#2), it should be used when doing a casecmp on Unicode strings:

    "".downcase(:fold) == "" #=> true



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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>