Java 18 is UTF-8 by Default
I love how they are ready to change behavior of existing code and require opting into a compat mode. I wish this way of fixing things properly while having opt-in compat was more common. Too often we see aversion towards breaking changes for no obvious reason. If you don’t want things to break then don’t upgrade things.
I'm curious if the internal representation will stay UTF-16? Someone smarter than I probably could say there's an advantage to using a fixed-length charset for internal purposes.
Now your turn, Windows.
hopefully the POSIX libc's and compilers are next. runtime locale lookups are a nightmare and nobody uses them anymore.