FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Guybrush am 26 August 2022, 20:43:09

Titel: codierung \x{e2}
Beitrag von: Guybrush am 26 August 2022, 20:43:09
Kann mir jemand sagen, was für eine codierung \x{e2} ist? Das ist doch kein richtiges utf8?!

Hintergrund ist der, dass das 86_Robonect Modul als Fehlermeldung z.b. "M�heinheit ist blockiert" zurück liefert. Laut Dumper ist es intern "M\x{e2}heinheit ist blockiert". Das scheint an der Robonect_callback() zu liegen, wo ein encode_utf8 vor dem decode_json erfolgt, was ja grundsätzlich ok ist, weil sich utf8 mit json ja nicht sonderlich gut verträgt. Allerdings wird dann später beim Schreiben der Errormessage ignoriert, dass zuvor ein encode_utf8 gemacht wurde.


readingsSingleUpdate($hash, "fehler_aktuell", $answer->{error}->{error_message}, 1);


Allerdings bringt funktioniert ein decode_utf8 auch nicht. Intern scheint es als Binär definiert zu sein. Jemand eine Idee?
Titel: Antw:codierung \x{e2}
Beitrag von: Beta-User am 26 August 2022, 21:14:32
Möglichst auf umwandeln verzichten? Unicode first help.... (Und was ich per pm schon mal angemerkt hatte, oder?)
Titel: Antw:codierung \x{e2}
Beitrag von: Guybrush am 26 August 2022, 23:19:42
Zitat von: Beta-User am 26 August 2022, 21:14:32
Möglichst auf umwandeln verzichten? Unicode first help.... (Und was ich per pm schon mal angemerkt hatte, oder?)

ich hab das 86_Robonect Modul nicht geschrieben. Das hätte ich da auch anders gemacht, aber ist ja nun mal so. Trotzdem bleibt die Frage was das für eine Codierung ist? Hab mir da jetzt ein Userreading angelegt und schreib da das reading "fehler_aktuell" rein. Aber die Codierung hat nicht hin, wenn ich ein decode_utf8 drauf mache...  :-\ muss also falsch codiert zurückkommen.
Titel: Antw:codierung \x{e2}
Beitrag von: Beta-User am 27 August 2022, 13:38:25
Na ja, der Maintainer wird sich vielleicht über einen patch freuen, falls JSON->new->decode() ganz ohne irgendwelche Klimmzüge vorneweg bessere Ergebnisse liefert...
decode_json() ist halt oft in copy-paste-Modulen zu finden...
Titel: Antw:codierung \x{e2}
Beitrag von: Guybrush am 27 August 2022, 23:35:19
hatte ich testweise schon probiert. ist das gleiche resultat. das problem ist aber ja, was für eine codierung das ist. sofern ich das richtig zu einem "ä" decodiert bekomm, kann ich auch einen patch machen. ich bin grad nur ratlos. hab sogar mal neben UTF8 noch utf-8 und utf8 probiert. richtig decoden tut er es mit keinem. deswegen ja die frage, was für eine codierung das ist  ::)
Titel: Antw:codierung \x{e2}
Beitrag von: Beta-User am 01 September 2022, 13:03:52
Sicherheitshalber: Die Klimmzüge hinterher hattest du auch deaktiviert?

In dem "first aid"-Thread gab's übrigens auch mind. einen Schnippsel, mit dem man versuchen könnte, die Kodierung (dynamisch) zu erraten.
Titel: Antw:codierung \x{e2}
Beitrag von: Guybrush am 02 September 2022, 12:02:28
erraten ist so eine Sache  :P

was meinst du aber mit Klimmzüge? Da steh ich grad aufm Schlauch
Titel: Antw:codierung \x{e2}
Beitrag von: Beta-User am 02 September 2022, 12:10:24
Stichwort ist "umlaut" (der Hash): Da wird nachträglich (!), also nach decode_json() noch irgendwas am Ergebnis rumgebastelt, um es in "HTML-Schreibweise" zu konvertieren... (Btw.: dass man einen kompletten Hash auf die Weise "verregexen" kann, war mir bis dahin noch nie begegnet).

Behaupte immer noch: Weg mit den ganzen Konvertierungen und "gut ist"...