Hallo,
bekanntlich sind in Java Strings ja UTF-16 codiert.
Laut http://de.wikipedia.org/wiki/UTF-16 werden die Zeichen U+10000 bis U+10FFFF durch 2 UTF-16-Zeichen codiert. Was passiert nun, wenn ich auf einem String, welcher aus genau einem solchen Zeichen besteht String.substring(0,1) ausführe: beachtet Java korrekt, dass trotzdem 2 UTF-16-Wörter zur Codierung erforderlich sind oder wird Java (inkorrekterweise) nur den ersten Character verwenden und damit einen inkorrekten String erzeugen?
Grüße
wolfgke
bekanntlich sind in Java Strings ja UTF-16 codiert.
Laut http://de.wikipedia.org/wiki/UTF-16 werden die Zeichen U+10000 bis U+10FFFF durch 2 UTF-16-Zeichen codiert. Was passiert nun, wenn ich auf einem String, welcher aus genau einem solchen Zeichen besteht String.substring(0,1) ausführe: beachtet Java korrekt, dass trotzdem 2 UTF-16-Wörter zur Codierung erforderlich sind oder wird Java (inkorrekterweise) nur den ersten Character verwenden und damit einen inkorrekten String erzeugen?
Grüße
wolfgke