Hallo Martin,
Danke für Deine Hinweise!
Das sieht im Prinzip richtig aus. Abgesehen davon, dass $value nirgends definiert wird. Das eigentliche Lesen aus der Datenbank hast du hier wohl weggelassen.
Ja, korrekt, weil da nichts Codierungs-relevantes passiert.
http://drarbeit.de/drarbeit/php/arch_get.php?angebot=nr14680
Diese Seite kommt in Windows-1252 daher, nicht ISO-8859-1.
Interessant, woran erkennst Du das? Im header steht
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
und auch die Datenbank ist mit latin1_swedish_ci eingestellt (bitte frag nicht, warum swedish, ich habe keine Ahnung mehr, was ich mir vor 20 Jahren dabei gedacht habe...)
Hmm. Die Bullets werden zu Fragezeichen, also dem Ersatzzeicehn für "ungültig". Die verwendeten Bullets haben in Windows-1252 den Code 0x95. In ISO-8859-x ist aber der Bereich 0x80..0x9F nicht definiert. Deswegen setzt mb_convert_encoding() hier zu Recht ein "invalid character".
Vermutlich würde es schon helfen, wenn du die Quell-Codierung korrekt als Windows-1252 angeben würdest.
Ich habe es versucht mit
$value = mb_convert_encoding($value, "UTF-8", "Windows-1252");
aber es bleibt bei den Fragezeichen statt Bullets.
Was könnte ich noch versuchen?