Tach!
allerdings hast du die Daten der SR-Nachrichten fälschlicherweise als Iso interpretiert und zu UTF-8 kodiert obwohl sie bereits UTF-8 waren, deswegen die Fehler mit den Umlauten in dem Textteil.
Wodurch interpretiere ich die SR-Nachrichten als ISO?
Mal ohne ein Blatt vor den Mund zu nehmen: Im Moment scheinst du mir bezüglich der Zeichenkodierung ziemlich rumzueiern. Du probierst aufs Geratewohl Sachen aus, bis es richtig aussieht, aber ohne dass du die Grundlagen verstanden hast. Das kannst du ändern, wenn du mal Grundlagenliteratur dazu liest. Die Frage nach dem "Was ist das überhaupt?" und "Warum gibt es so viele?" sind unter anderem in unserer Dokumentation geklärt.
Zu deiner eigentlichen Frage: Du hast da eine Folge von Bytes vorliegen. Wenn du die genauso interpretierst, wie sie der Sender kodiert hat, dann ist alles in Ordnung und du bekommst genau dieselben Zeichen raus, die der Sender gemeint hat. Wenn du sie aber nach einer anderen Vorschrift interpretierst, kommt Mist raus. In deinem Fall nimmst du vermutlich eine Umkodierfunktion, die die Zeichen in der einen Kodierung interpretiert (in der sie aber nicht vorliegen) und dann in eine andere zu bringen versucht. So entsteht der Salat.
Du musst schon genau wissen, welche Kodierung vorliegt und welche es werden soll. Dass du mit unterschiedlichen Quellen arbeitest, die unterschiedlich kodiert sein können, macht die Sache nicht einfacher.
Deine nächste Frage wird sein, wie du die Kodierung automatisch erkennen kannst. Nun, es gibt da einige Indizien, aber die sind nicht vollständig aussagekräftig oder es ist manchmal gar unmöglich, die Kodierung aus den Daten heraus zu erraten. Eigentlich senden die Quellen (oder solltes es zumindest) immer mit, welche Kodierung vorliegend ist. Dazu musst du aber die HTTP-Header auswerten und gegebenenfalls die Ersatzangabe im HTML-Head. Oder du machst es dir einfach und untersuchst die Kodierungsangaben der einzelnen Quellen zu Fuß und nimmst an, dass das in Zukunft so bleiben wird und hartkodierst deine gegebenenfalls notwendigen Umkodierfunktionen je nach Quelle.
dedlfix.