From: shyouhei@... Date: 2017-10-26T01:28:12+00:00 Subject: [ruby-core:83570] [Ruby trunk Feature#14055][Rejected] String#casecmp should use Unicode folding 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: