Autor Thema: codierung \x{e2}  (Gelesen 431 mal)

Offline Guybrush

  • Full Member
  • ***
  • Beiträge: 200
codierung \x{e2}
« 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?

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19401
Antw:codierung \x{e2}
« Antwort #1 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?)
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Offline Guybrush

  • Full Member
  • ***
  • Beiträge: 200
Antw:codierung \x{e2}
« Antwort #2 am: 26 August 2022, 23:19:42 »
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.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19401
Antw:codierung \x{e2}
« Antwort #3 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...
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Offline Guybrush

  • Full Member
  • ***
  • Beiträge: 200
Antw:codierung \x{e2}
« Antwort #4 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  ::)

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19401
Antw:codierung \x{e2}
« Antwort #5 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.
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Offline Guybrush

  • Full Member
  • ***
  • Beiträge: 200
Antw:codierung \x{e2}
« Antwort #6 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

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19401
Antw:codierung \x{e2}
« Antwort #7 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"...
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files