Was ist der Unterschied zwischen UTF-8 und ISO-8859-1?
UTF-8 ist eine Multibyte-Kodierung, die jedes Unicode-Zeichen darstellen kann. ISO 8859-1 ist eine Ein-Byte-Kodierung, mit der die ersten 256 Unicode-Zeichen dargestellt werden können. Beide kodieren ASCII auf genau die gleiche Weise.
Wikipedia erklärt beides recht gut: UTF-8 vs. Latin-1 (ISO-8859-1). Ersteres ist eine Kodierung mit variabler Länge, letzteres eine Ein-Byte-Kodierung mit fester Länge. Latin-1 kodiert nur die ersten 256 Codepunkte des Unicode-Zeichensatzes, während UTF-8 zur Kodierung aller Codepunkte verwendet werden kann. Auf der Ebene der physikalischen Kodierung werden nur die Codepunkte 0 - 127 identisch kodiert; die Codepunkte 128 - 255 unterscheiden sich dadurch, dass sie bei UTF-8 zu einer 2-Byte-Sequenz werden, während sie bei Latin-1 aus einzelnen Bytes bestehen.
ISO-8859-1 ist ein veralteter Standard aus den 1980er Jahren. Er kann nur 256 Zeichen darstellen und ist daher nur für einige Sprachen der westlichen Welt geeignet. Selbst für viele unterstützte Sprachen fehlen einige Zeichen. Wenn Sie eine Textdatei in dieser Kodierung erstellen und versuchen, einige chinesische Zeichen zu kopieren/einzufügen, werden Sie seltsame Ergebnisse sehen. Mit anderen Worten: Verwenden Sie es nicht. Unicode hat die Welt erobert und UTF-8 ist heutzutage so gut wie der Standard, es sei denn, Sie haben einige ältere Gründe (wie HTTP-Header, die mit allem kompatibel sein müssen).