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>