| `String.toLowerCase()` (and `toUpperCase`) without specifying a `Locale` can | |
| have surprising results. | |
| For example, if this is used on a device and the user's `Locale` is Türkiye, | |
| then `"I".toLowerCase()` will yield a lowercase dotless I ("ı"). This could be | |
| extremely dangerous if you were expecting to operate on ASCII text to generate | |
| machine-readable identifiers. | |
| If this kind of regionalisation is desired, use | |
| `.toLowerCase(Locale.getDefault())` to make that explicit. If not, | |
| `.toLowerCase(Locale.ROOT)` or `.toLowerCase(Locale.ENGLISH)` will give you | |
| casing independent of the user's current `Locale`. If you know that you're | |
| operating on ASCII, prefer `Ascii.toLower/UpperCase` to make that explicit. |