In Turkish, \u0130(İ) and \u0131(ı) are different characters, when using String.equalsIgnoreCase(), it should return false.
In following cases, it should all return false, but it returns true: (tested with 1.8.0_20 b20)
"\u0130".equalsIgnoreCase("\u0049")
"\u0069".equalsIgnoreCase("\u0131")
"\u0130".equalsIgnoreCase("\u0131")
"\u0069".equalsIgnoreCase("\u0049")
In following cases, it should all return false, but it returns true: (tested with 1.8.0_20 b20)
"\u0130".equalsIgnoreCase("\u0049")
"\u0069".equalsIgnoreCase("\u0131")
"\u0130".equalsIgnoreCase("\u0131")
"\u0069".equalsIgnoreCase("\u0049")
- relates to
-
JDK-8041791 String.toLowerCase regression - violates Unicode standard
-
- Closed
-