Ankündigung

Einklappen
Keine Ankündigung bisher.

V3 Bug: Textkonvertierung fehlerhaft

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [EibStudio] V3 Bug: Textkonvertierung fehlerhaft

    Folgender Code soll 2 Strings am CommandFusion Interface ausgeben:

    [highlight=epc]
    JoinStatus(iPad_WZ,s202,Aussentemp_String)
    JoinStatus(iPad_WZ,s200,St_Aussentemp_String)

    St_Aussentemp_String = encode($Aussentemperatur $ + stringformat("WS Temperatur-0/3/60", 4, 0, 3, 1)+ $°C$, $Windows-1252$c14,$UTF-8$c14);
    Aussentemp_String = $$ + stringformat("WS Temperatur-0/3/60", 4, 0, 3, 1)+ $°C$;
    [/highlight]

    Bei beiden Strings wird am iPad das ° als ° dargestellt und das Komma zum Punkt z.B. 20.1°C.

    Wie kann ich diese falsche Konvertierung korrigieren?

    Kompiliert wird unter Win8.1 deutsch, dargestellt wird am iPad.
    BR
    Marc

    #2
    Zitat von saft6luck Beitrag anzeigen
    Folgender Code soll 2 Strings am CommandFusion Interface ausgeben:
    Bei beiden Strings wird am iPad das ° als ° dargestellt und das Komma zum Punkt z.B. 20.1°C.
    Danke, werden wir uns hier mal genauer anschauen.
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Bei der Abfrage des Strings im Debugger kann man den falschen Inhalt bereits bewundern!

      Gibt es schon einen Fix?
      BR
      Marc

      Kommentar


        #4
        Zitat von saft6luck Beitrag anzeigen
        Bei der Abfrage des Strings im Debugger kann man den falschen Inhalt bereits bewundern!
        Nein, das wird noch etwas dauern. Derzeit sind wir da eher am Webserver am fixen.
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Zitat von saft6luck Beitrag anzeigen
          Gibt es schon einen Fix?
          Ist in dem nächsten Patch (sehr bald online) gefixt.
          Zu Deinem Beispiel:
          Man beachte, dass das EibStudio für den EibPC alles in UTF-8 umkodiert.
          Also ist
          Code:
          St_Aussentemp_String = encode($Aussentemperatur $ + stringformat(2.34, 4, 0, 3, 1)+ $°C$,$Windows-1252$c14,$UTF-8$c14);
          gar nicht notwendig, da jeder konstante String sowieso dem EiBPC mundgerecht in UTF codiert wird (egal, mit welchem OS man arbeitet). Die encode Funktion ist v.a. wichtig, wenn ich einen String z.B. per TCP Telegramm erhalte, der von einer Plattform mit Codierung ungleich UTF-8 stammt und ich den vergleichen will.
          Noch eine Bemerkung:
          Bei c14 ist derzeit die erweiterte Codierung mit Sonderzeichen im Parser gesperrt. Dies wird aber in einer der nächsten Versionen so sein, dass der EibPC den String immer als 8859-15 codiert, wie es das erweiterte Stringobjekt der Konnex vorsieht.
          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
          Enertex Produkte kaufen

          Kommentar


            #6
            Zitat von enertegus Beitrag anzeigen
            Ist in dem nächsten Patch (sehr bald online) gefixt.
            Super, vielen Dank!
            BR
            Marc

            Kommentar


              #7
              Mit dem aktuellen Patch wird der String im eibPC nun richtig angezeit, d.h. die Abfrage per Debugger zeigt kein 'Â' mehr.

              Leider wird im CommandFusion das '°' immer noch als '°' angezeigt.

              Da CommandFusion ja UTF-8 erwartet verstehe ich das Problem nicht wirklich bzw. wie man das jetzt fixen kann. Bei der V2 lief es ja problemlos und am CommandFusion habe ich nichts geändert.

              Gibt es da eine Möglichkeit mit encode() oder per stringset()?
              BR
              Marc

              Kommentar


                #8
                Zitat von saft6luck Beitrag anzeigen
                Mit dem aktuellen Patch wird der String im eibPC nun richtig angezeit, d.h. die Abfrage per Debugger zeigt kein 'Â' mehr.
                Leider wird im CommandFusion das '°' immer noch als '°' angezeigt.
                S.o: Du musst gar nicht konvertieren, wenn das Zielgerät in UTF-8 mit codierten Strings arbeitet: Der String im eibpc ist per default immer in utf-8.
                Ansonsten mit encode in die Zielcodierung wandeln, Ausgangscodierung ist immer utf-8.
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  Zitat von enertegus Beitrag anzeigen
                  S.o: Du musst gar nicht konvertieren, wenn das Zielgerät in UTF-8 mit codierten Strings arbeitet: Der String im eibpc ist per default immer in utf-8.
                  Ansonsten mit encode in die Zielcodierung wandeln, Ausgangscodierung ist immer utf-8.
                  Ja, schon klar, es kommt aber trotzdem genau der Effekt, dass das '°' falsch konvertiert dargestellt wird (das '°' deute ich als 2-Byte-Zeichen).
                  Da es mit der V2 doch ging vermute ich eine Konvertierung vor der Übertragung -> bin auf der Suche nach Lösungen
                  BR
                  Marc

                  Kommentar


                    #10
                    Zitat von saft6luck Beitrag anzeigen
                    Ja, schon klar, es kommt aber trotzdem genau der Effekt, dass das '°' falsch konvertiert dargestellt wird (das '°' deute ich als 2-Byte-Zeichen).
                    Da es mit der V2 doch ging vermute ich eine Konvertierung vor der Übertragung -> bin auf der Suche nach Lösungen
                    ok, das hier wäre aber falsch:
                    [highlight=epc]
                    St_Aussentemp_String = encode($Aussentemperatur $ + stringformat("WS Temperatur-0/3/60", 4, 0, 3, 1)+ $°C$, $Windows-1252$c14,$UTF-8$c14);
                    [/highlight]
                    Du müsstest das einfach so machen:
                    [highlight=epc]
                    St_Aussentemp_String = $Aussentemperatur $ + stringformat("WS Temperatur-0/3/60", 4, 0, 3, 1)+ $°C$
                    [/highlight]
                    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                    Enertex Produkte kaufen

                    Kommentar


                      #11
                      Zitat von enertegus Beitrag anzeigen
                      ok, das hier wäre aber falsch:
                      [highlight=epc]
                      St_Aussentemp_String = encode($Aussentemperatur $ + stringformat("WS Temperatur-0/3/60", 4, 0, 3, 1)+ $°C$, $Windows-1252$c14,$UTF-8$c14);
                      [/highlight]
                      ok, probehalber trotzdem gemacht kommt dann '°' am iPad raus.

                      Du müsstest das einfach so machen:
                      [highlight=epc]
                      St_Aussentemp_String = $Aussentemperatur $ + stringformat("WS Temperatur-0/3/60", 4, 0, 3, 1)+ $°C$
                      [/highlight]
                      So ist es implementiert. Der Debugger zeigt es richtig, am iPad kommt immer noch '°'.
                      BR
                      Marc

                      Kommentar


                        #12
                        Folgender Status:

                        CommandFusion verwendet ISO-8859-1 als Kodierung, nicht UTF-8. Der Parameter für die Textkodierung "text encoding" funktioniert aktuell leider nicht.

                        Der eibPC verwendet UFT-8 für die Stringkodierung. Das Kommando encode() funktioniert aktuell leider nicht richtig, oder der Parameter für die Kodierung nach ISO-8859-1 ist falsch.
                        [highlight=epc]
                        St_Aussentemp_String = encode($Aussentemperatur $ + stringformat("WS Temperatur-0/3/60", 4, 0, 3, 1)+ $°C$, $UTF-8$c14, $ISO-8859-1$c14,);
                        [/highlight]

                        Probiert habe ich die Namen aus Character Sets.

                        Könnt ihr bei Enertex mal prüfen, wie encode() einen richtigen String liefern würde?
                        BR
                        Marc

                        Kommentar

                        Lädt...
                        X