Bug: Falsches utf-8 encoding aller Parameter der Logging-Funktion

Hallo!

Durch einen Test während der Entwicklung meines Webplayers ist mir aufgefallen, dass die Logging-Funktion leider immer noch alle Parameter mit Latin-1 (‎ISO-8859-1) encodiert. Die kleine Checkbox macht leider nichts. Ich habe Titel mit deutschen Umlauten (öäüß) laufen lassen und auf dem Linux-Server ein Dump-File der Request geschrieben. Und zwar roh, ohne beim Encoding etwas zu verändern! Das Dump-File und deren Inhalte waren immer Latin-1.

Der gleiche Request von einem Linux-System mit funktionierendem utf-8 ergab immer ein utf-8 Dump-File.

Ich denke, dass ist leider ein Bug in mAirlist.

Beste Grüße,
Markus

Um welche Programmversion handelt es sich?

4.4.11 Build 2115 auf Windows 7 Pro 64Bit

Wollte nur mal nachfragen, ob sich schon was getan hat. Konntest Du den Fehler schon finden?

Es ist übrigens noch viel schlimmer. Die Logging Variablen werden nicht alle gleich encodiert. Die Variable %1 kann zum Beispiel gar nicht mit Werten umgehen die eines dieser Zeichen enthalten: öäüß´ - Es sieht so aus, als würde die interne Konvertierung von ISO-8859-1 nach UTF-8 fehlschlagen.

Wann können wir denn da mal mit einer Antwort des Supports rechnen?

Ich weiß nicht, was steht denn in deinem Supportvertrag für eine Reaktionszeit?

Nein, Spaß beiseite. Habe gerade keine Zeit und wenig Motivation, die alte Version herauszukramen und das zu debuggen.

Nur zur Sicherheit, um welches Logging geht es, HTTP? GET oder POST?

Hast du ggf. die Möglichkeit, die Konvertierung auf dem Server vorzunehmen? Ich würde das guten Gewissens als “known issue” deklarieren. mAirList 4 wird nämlich an sich nicht mehr gepflegt.

Verstehe. Allerdings tritt es bei beiden Varianten auf. GET und POST. Und leider werden in mAirlist 4.4.11 die Zeichen nicht alle gleichermaßen sauber encodiert. Es sind also Wide-Character im Unicode und/oder anderer Zahlenmüll.

Und wenn ich einen Parameter in meiner App konvertieren will, der dann eben Zeichen enthält die weder sauberes UTF-8 noch ISO-8859-1 sind, dann ist an dieser Stelle Ende. Perl ist hier als Sprache recht mächtig, hat aber auch seinen Stolz. :slight_smile:

Im Übrigen läuft es in der 5er Version. Und wie ich dem Changelog entnommen habe, ist das Problem ja bekannt! Also steckt der Fehler vermutlich schon länger im mAirlist Code.

Nun, nach langem Hin und Her, habe ich das Thema selbst gelöst. Lösung: Bei allen Versionen unter mAirlist 4.4.11 ist die Logging Schnittstelle via GET und POST unbenutzbar, aufgrund des fehlerhaften Encodings der mAirlist Variablen. Ab Version 4.4.11 muss man das UTF-8 Encoding im Logging ausschalten und Serverseitig alles mit ISO-8859-1 decodieren. Ab der letzten 5-er Version muß der UTF-8 Encoding Schalter angeschaltet werden und Serverseitig alles mit UTF-8 decodiert werden. Ansonsten funktioniert das Logging nur bis zum nächsten Sonderzeichen. Als da beispielsweise wären:

öäü?´`#Ø áéÀè

Schade, daß Ihr es nicht für wichtig erachtet, diesen krassen Bug zu fixen!

Wenn das in der 5er-Version auch noch kaputt ist, dann wird das selbstverständlich repariert. Wobei es mir sehr merkwürdig vorkommt, dass das Problem vorher noch niemandem untergekommen ist. HTTP-Logging wird nämlich von sehr vielen Nutzern verwendet, auch mit Umlauten.

Aber nun gut, ich schaue es mir an.

Was mAirList 4 angeht, so bitte ich um Verständnis, wenn es jetzt - 2,5 Jahre nach dem Release von v5 - für manche Sachen einfach keine Bugfixes mehr geben wird. Life goes on.