具有默认语言环境的 String.toLowerCase() 的目的?

nto*_*rnl 5 java string unicode locale case-sensitive

Java 有两个重载,分别用于 String.toLowerCase 和 toUpperCase。其中一个重载将 Locale 作为参数,而另一个重载不带参数并使用默认 locale ( Locale.getDefault())。

无参数变体可能无法按预期工作,因为大小写转换尊重国际化,并且默认语言环境取决于系统。最值得注意的是,小写的 i 被转换为大写的 ? 在土耳其语地区。

这些方法的目的是什么?无参数变体有任何合法用途吗?或者也许他们只是一个设计错误?(与默认情况下使用系统默认字符编码的几个 I/O API 不同。)

nto*_*rnl 0

几篇博客 文章表明默认区域设置和字符集确实是一个设计错误,并且没有任何有意义的用途。