DecentralizedAmateurPagingNetwork / Core

The DAPNET Core is the core application of DAPNET, responsible for handling transmitter clients, clustering, and providing the REST API.
https://www.afu.rwth-aachen.de/projekte/funkruf-pager-pocsag/funkrufmaster-2-0-dapnet
42 stars 11 forks source link

Umlaute & Sonderzeichen #99

Closed on5mm closed 7 years ago

on5mm commented 7 years ago

Hallo zusammen, ist es moeglich, die Behandlung von Umlauten und ggf auch einfachen sonderzeichen wie bspw dem Grad-Zeichen noch zu implementieren? Aktuell scheint nur die Umschreibung mit ae, oe, ue bzw. ss zu gehen, ansonsten wird die Nachricht verstuemmelt. ich hatte schonmal eine Maskierung wie \u00F6 fuer oe versucht, geht aber auch nicht. Generell sollte der skyper ja Umlaute koennen da beim loeschen einer Nachricht dort auch ein korrekter Umlaut (also im Wort Loeschen an sich) angezeigt wird.

Taronyu commented 7 years ago

Hmm, die Skyper unterstützen bestimmt nicht UTF-8. Ich kann mal versuchen, ob ich die Nachrichten in ASCII an die Sender weiterleiten kann. Sofern die Pager keine eigene Implementierung einer Charactertabelle haben, könnte das eventuell schon ausreichend sein. Allerdings weiß ich nicht, wie die Sender auf den Wechsel reagieren. Das mache ich besser mal im experimentellen Branch.

dh3wr commented 7 years ago

Man müsste mal in die Tabelle bei der Funkruf-Encodierung schauen. Da sind alle Zeichen gemapt, wenn ich mich nicht irre. UTF-8 ist es sicher nicht.

Taronyu commented 7 years ago

Mir ist gerade aufgefallen, dass die Umlaute schon in der REST API im Core kaputt gehen...

Edit: Man sollte auch den Client das richtige Encoding senden lassen -.-

on5mm commented 7 years ago

Hallo zusammen, wie ist denn der Stand der Dinge was dieses Issue angeht? An verschiedenen Quellen (z.B. https://en.wikipedia.org/wiki/ASCII#7-bit_codes) findet man die Aussage, dass in unserer (deutschen) lokalen ASCII-Variante Umlaute z.B. an Stelle der {} stehen. Die Amateurfunk-Wiki liefert sogar eine komplette Zeichentabelle (http://www.amateurfunk-wiki.de/index.php?title=POCSAG), welche aus irgendeiner Firmware reverse engineered worden sei. Kann man mit diesen Informationen vllt nochmal das Problem angehen?

128, Michael

Taronyu commented 7 years ago

Danke für die Links. Ich hatte nur mal das Encoding auf ASCII umgestellt, vorher war das Unicode. Aber wenn die ein eigenes Encoding nutzen, dann ist das schon wieder bescheiden. Jedenfalls gucke ich mir das noch mal an, ich meine mich zu erinnern, dass das eigentliche Encoding im Sender geschieht, entweder mit einer LUT oder Bitgefrickel.

Taronyu commented 7 years ago

Okay, ich habe jetzt mal einen Encoder/Decoder zusammengekloppt, der die Sonderzeichen/Umlaute wie in dem Link beschrieben behandelt. Das müssen wir auf jeden Fall vorher mal testen, auch mit verschiedenen Sendern. Problematisch ist eventuell auch, dass das alle Sender betreffen würde. Ein Sender in NL würde dann also auch mit dem angepassten DE-Encoding bespaßt.

Taronyu commented 7 years ago

Also, wir haben das gerade getestet und Umlaute werden jetzt auch als solche angezeigt. Ein neues Release muss dann noch ausgerollt werden.

Taronyu commented 7 years ago

Auf db0sda ausgerollt, der Rest folgt.

on5mm commented 7 years ago

Zumindest beim Einliefern über die REST-API noch nicht ganz perfekt: ü ist ö, ö ist v (also bspw. Kvln statt Köln bei den Ortsdosisleistungen). Über das Webinterface auf hampager.de alles bongiorno. Kannst du da bei Gelegenheit nochmal nach schauen? Dankö.

Taronyu commented 7 years ago

Prüfe bitte mal, ob du das als UTF8 an die REST API sendest. Die Transformation nach ASCII erfolgt erst beim Senden an den Sender. Außerdem geht die Webseite auch nur gegen die API.

on5mm commented 7 years ago

Kannst du mal schauen ob es noch Unterschiede in Rubriken- und PrivateCall-Behandlung gibt? Ich kann mit meinen Perl-Skripten jetzt problemlos Sonderzeichen als private Nachricht schicken, aber in den Rubriken klemmt es noch, ü funktioniert, ö wird aber als v oder wahlweise auch als ü übertragen (eigenartiges aber reproduzierbares Verhalten)...

Taronyu commented 7 years ago

Okay, da wird in der Tat irgendwas anders gemacht als bei einem normalen Call:

// SkyperProtocol.java:123
for (int i = 0; i < news.getText().length(); ++i) {
            sb.append(String.valueOf((char) ((int) news.getText().charAt(i) + 1)));
}

Ich kann dir aber nicht sagen, ob das erforderlich ist oder nicht. Ich habe auf die Schnelle keine Beschreibung des Protokolls für Rubriken/News finden können. Bei normalen Calls wird der String unverändert an den Netzwerkstack übergeben. Ich mache das Issue aber jetzt wieder auf, da hier ja definitv was nicht stimmt.

on5mm commented 7 years ago

Jetzt ist es noch mehr kaputt :-) Vorher funktionierte ja noch das ü, jetzt werden im Grunde alle Umlaute (äöü) zu >. Spitzklammer auf und zu funktionieren, ß wird auch zu >

Taronyu commented 7 years ago

Ich habe noch mal ein Update gepusht.

dh3wr commented 7 years ago

Deployed auf hampager.de

on5mm commented 7 years ago

Top, aus meiner Sicht jetzt alles gut.