Telnet, UTF-8 und Umlaute

Begonnen von Matthias, 21 November 2013, 15:23:47

Vorheriges Thema - Nächstes Thema

justme1968

ja richtig in der fhem telnet konsole

^] ist ctrl und ] gleichzeitig. dann landest du in einem prompt innerhalb des telnet programms. die beiden set sind kommandos für telnet nicht für fhem.

was das log angeht: schau mal ob der eintrag anders ausschaut wenn du den alias über das web frontend setzt. es kann sein das das logfile einfach nur ascii ist.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

setzen sollte so aussehen:attr a alias Ä
> 0x0 61 74 74 72 20 61 20 61 6c 69 61 73 20 c3 84 0a


das ende von list so:.
.
.
< 0xb0 65 73 3a 0a 20 20 20 61 6c 69 61 73 20 20 20 20
< 0xc0 20 20 c3 84 0a 0a
.
.
.
Attributes:
   alias      Ä


da ist jedes mal das c8 84 korrekt drin.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Vermutlich ist das Terminal-Programm auf Latin-1 gestellt.
Interessiert eigentlich den telnet client, worauf LANG & co gestellt sind?
Den Terminal ziemich sicher nicht, es wird ja normalerweise vor dem Setzen dieser Variablen gestartet.

justme1968

irgendwo in der kette scheint eine komponente nicht richtig auf utf8 zu stehen. aber es ist komisch das es dann überhaupt geht.

die ausgabe von lokale deutet eigentlich auch darauf hin das es stimmt. ausser das terminal (xterm&co) ist explizit auf ein anderes encoding geschaltet.

telnet reicht die zeichen 1:1 durch und weiss nichts vom encoding und wertet LANG&co auch nicht aus. es gibt nur die unterscheidung zwischen 7 und 8 bit mode je richtung.

theoretisch gibt es eine telnet erweiterung mit der der server das encoding der shell auf dem client erfragen kann damit alles automatisch funktioniert. leider wird das meines wissens nach nirgendwo unterstützt. d.h. es müssen alle komponenten zusammen passen: server und client müssen jeweils das encoding senden das der andere erwartet und telnet in der mitte muss für den 8bit/utf8 fall auf 8bit mode geschaltet werden.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

@matthias: wie schaut dein setup genau aus?

ist das eine linux konsole oder irgend ein grafisches frontend? knome/kde/...?
kannst du das encoding des terminal programms sehen/einstellen ?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Matthias

Hi,

also FHEMWEB steht richtig im Log. Der Telnet netcat output scheint in Ubuntu kaputt zu sein - jedenfalls kommt gerade kein Output, auch wenn ich ein explizites Tracefile einschalte. Ich versuche jetztdann mal netcat direkt dazwischen zu hängen.

Zum Setup:
Das ist ein ganz normales Ubuntu (Default-Shell). Theoretisch verwende ich noch einen Terminal-Emulator (tmux) dazwischen, das spielt aber keine Rolle. Wenn ich den rauslasse bekomme ich das selbe Ergebnis. Das Encoding kann man dort einstellen, ja. Das steht aber per default schon auf UTF-8. Ich kann natürlich mal versuchen es auf ISO-8859 zu stellen, aber ich glaube dann endet es endgültig im Encoding-Chaos :-).

Mir wäre das grundsätzlich egal. Ich halte Umlaute in solchen Programmen für ehrlich gesagt ziemlich überflüssig. Ich bin auch darauf gekommen, weil ich Umlaute in andFHEM für Telnet zum Laufen bringen wollte, weil ein Nutzer das verwenden wollte... Wie sieht denn euer Setup aus? Eventuell kann ich es ebenfalls so ausprobieren - damit wüssten wir wenigstens genau dass das nur ein Sonderfall der dämlichen Ubuntu Telnet Implementierung ist...

Matthias

Matthias

P.S.: Mit nc direkt funktioniert das Setzen des Alias (via nc localhost 7072). Damit ist es definitiv kein FHEM Fehler, sondern eine nicht funktionierende Ubuntu Shell. Danke für die Hilfe!

justme1968

eigentlich kommt die ausgabe wenn du netdata einschaltest direkt auf der konsole. du brauchst kein tracefile.

wenn du latin1/ISO-8859 verwendest musst du natürlich das encoding für das fhem telnet auch auf latin1 setzen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Matthias

Klar, will ich ja nicht. UTF-8 ist gut :-). Da will ich definitiv nicht weg von. Der Trace kommt in der Telnet-Implementierung nicht. Frag mich bitte nicht warum. Ich tippe tatsächlich auf irgendeinen Ubuntu Schmuh. da gibt es noch einen Bug-Report dazu ...