Ciao,
io ho provato con OpenJDK 17 (Corretto) ed il comportamento è lo stesso.
Per cercare di capire ho provato a vedere cosa prevede lo standard Unicode. A giudicare da qui il cambio di lunghezza della stringa è possibile e previsto dallo standard:
https://www.unicode.org/versions/Unicode14.0.0/ch05.pdf#G21180
Per quanto riguarda il caso specifico, la regola di conversione dovrebbe essere questa:
0130;LATIN CAPITAL LETTER I WITH DOT ABOVE;Lu;0;L;0049 0307;;;;N;LATIN CAPITAL LETTER I DOT;;;0069;
da qui: https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt
più quanto indicato nella parte finale qui:
https://www.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt
Usando il Locale.ROOT (cioè un locale che "is used as the language/country neutral locale") tali regole non vengono applicate, quindi produce una coppia di unicode units (che è quello che restituisce il metodo length di String).
Riassumendo: è abbastanza normale (e logico, secondo me) che
usando Locale diversi si abbiano risultati diversi convertendo a
lowercase/uppercase. Nel caso specifico, la regola prevista dallo
standard Unicode per quel carattere mi sembra applicata
correttamente, quindi non lo definirei un bug. Sicuramente non è
un bug il fatto che length restituisca un valore maggiore di 1 per
un carattere rappresentato mediante più unicode units.
Prova a dare un'occhiata anche a questo articolo. Non è esattamente la stessa situazione che hai evidenziato tu, ma forse qualcosa chiarisce:
https://garygregory.wordpress.com/2015/11/03/java-lowercase-conversion-turkey/
Ciao
Lucio
--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "JUG Padova" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a jugpadova+...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/jugpadova/6652bf1d-f30e-4d05-a306-e32aa099e85dn%40googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/jugpadova/fcfe825d-17d3-880c-891a-f62ef221367f%40jugpadova.it.