Bis wohin geht denn UTF-8?
UTF-8 ist ja nicht durch einen Zahlenbereich gekennzeichnet, sondern wie oben beschrieben über bestimmte Bitmuster. Insbesondere gibt es Bytes bzw. Bytefolgen zwischen 128 und 255, die kein UTF-8 darstellen. Deswegen kann ja auch das Decodieren mit UTF-8 zu einer
Exception führen.
ANSI-Decodieren (wie z.b. 1252) geht aber immer, da dort alle Zeichen im Bereich 0..255 gültig sind (vielleicht nicht sinnvoll, aber gültig). Was dann allerdings dabei heraus kommt ist eben von der verwendeten Codepage abhängig. Wenn du ein mit CP 1253 codiertes File als CP 1252 decodierst, kann eben was falsches raus kommen und du würdest es nicht mal merken, wenn du das gewünschte Ergebnis nicht kennst.
Mit UTF-8 kannst du im Grunde jedes
Unicode Zeichen codieren. Du brauchst halt für manche Zeichen eben mehr als 1 Byte.