Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Suche Script zur Konvertierung von Unicode auf UTF-8

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Suche Script zur Konvertierung von Unicode auf UTF-8

    This topic has been deleted. Only users with topic management privileges can see it.
    • Codierknecht
      Codierknecht Developer Most Active @hg6806 last edited by Codierknecht

      @hg6806 sagte in Suche Script zur Konvertierung von Unicode auf UTF-8:

      Die Funktion läuft wohl nicht

      Naja - "laufen" tut die schon. Sie bringt nur nicht das gewünschte Ergebnis 😞

      Dann halt erstmal die Holzhammer-Methode:

          let result = text.replaceAll('\u00e4', 'ä');
          result = result.replaceAll('\u00f6', 'ö');
          result = result.replaceAll('\u00fc', 'ü');
          result = result.replaceAll('\u00c4', 'Ä');
          result = result.replaceAll('\u00c6', 'Ö');
          result = result.replaceAll('\u00dc', 'Ü');
          result = result.replaceAll('\u00df', 'ß');
          return result;
      
      

      Edit
      Natürlich könnte man das auch generisch machen und alles was mit \u00 beginnt in den entsprechenden Code übersetzen.
      Das dürfte aber von der Performance noch etwas ungünstiger sein.

      1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active last edited by

        @hg6806 sagte in Suche Script zur Konvertierung von Unicode auf UTF-8:

        In den alten Ausgabepunkt konnte nichts geschrieben werden.
        Weil er von OpenWB/MQTT erzeugt wurde?

        In Datenpunkte die "einem Adapter gehören" schreibt man nur dann (und zwar ohne Ack-Flag), wenn der Adapter auch etwas damit anfangen kann. Also wenn er den Wert z.B. an ein Gerät übertragen soll etc.
        Zum "Umformatieren" nimmt man entweder einen Alias (wenn man den Wert per Konvertierungsfunktion verarbeiten kann) oder einen eigenen DP in 0_userdata.0 (wenn der Wert per Script umformatiert werden muss).

        1 Reply Last reply Reply Quote 0
        • hg6806
          hg6806 Most Active last edited by

          Also, Funktion sieht jetzt so aus, wie vorgegeben:
          fa99eec9-affa-454e-ab53-71ec02195740-image.png

          Ergebnis ist noch immer ohne Umlaute.

          @Codierknecht Ja, habe jetzt den DP in userdata

          Codierknecht 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @hg6806 last edited by

            @hg6806
            Poste hier mal bitte (in Code-Tags </>) nicht das was im Log steht, sondern den Inhalt des Original-DP aus OpenWB/MQTT.

            hg6806 1 Reply Last reply Reply Quote 0
            • hg6806
              hg6806 Most Active @Codierknecht last edited by

              @codierknecht

              "Ladevorgang wurde gestartet... (bei Problemen: Pr\u00fcfe bitte zuerst in den Einstellungen 'Ladeeinstellungen' und 'Konfiguration'.)"
              
              Codierknecht 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @hg6806 last edited by

                @hg6806
                Versuchs mal so:

                    let result = text.replaceAll('\\u00e4', 'ä');
                    result = result.replaceAll('\\u00f6', 'ö');
                    result = result.replaceAll('\\u00fc', 'ü');
                    result = result.replaceAll('\\u00c4', 'Ä');
                    result = result.replaceAll('\\u00c6', 'Ö');
                    result = result.replaceAll('\\u00dc', 'Ü');
                    result = result.replaceAll('\\u00df', 'ß');
                    return result;
                
                hg6806 1 Reply Last reply Reply Quote 0
                • hg6806
                  hg6806 Most Active @Codierknecht last edited by

                  @codierknecht sagte in Suche Script zur Konvertierung von Unicode auf UTF-8:

                  let result = text.replaceAll('\u00e4', 'ä');
                  result = result.replaceAll('\u00f6', 'ö');
                  result = result.replaceAll('\u00fc', 'ü');
                  result = result.replaceAll('\u00c4', 'Ä');
                  result = result.replaceAll('\u00c6', 'Ö');
                  result = result.replaceAll('\u00dc', 'Ü');
                  result = result.replaceAll('\u00df', 'ß');
                  return result;

                  BINGO!

                  Jetzt läuft es. Lag es evtl. an den Anführungszeichen im String?

                  Vielen Dank allen!

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @hg6806 last edited by

                    @hg6806 sagte in Suche Script zur Konvertierung von Unicode auf UTF-8:

                    Lag es evtl. an den Anführungszeichen im String?

                    Nein. Es lag daran, dass ein \ ein Steuerzeichen ist und im String "escaped" werden muss.

                    Hier noch eine generische Variante:

                      return text.replace(/\\u[0-9a-fA-F]{4}/gi, match => {
                        return String.fromCharCode(parseInt(match.replace(/\\u/g, ""), 16));
                      });
                    
                    hg6806 1 Reply Last reply Reply Quote 0
                    • hg6806
                      hg6806 Most Active @Codierknecht last edited by

                      @codierknecht

                      Ja, geht auch so. Danke nochmals!

                      Codierknecht 1 Reply Last reply Reply Quote 0
                      • Codierknecht
                        Codierknecht Developer Most Active @hg6806 last edited by

                        @hg6806 sagte in Suche Script zur Konvertierung von Unicode auf UTF-8:

                        geht auch so

                        Dann würde ich das bevorzugen.
                        Die "Holzhammer-Methode" ist ja auf einige (7) spezifische Fälle beschränkt.
                        Die generische Variante ist universeller.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        942
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        5
                        28
                        637
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo