Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Suche Script zur Konvertierung von Unicode auf UTF-8

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    774

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Suche Script zur Konvertierung von Unicode auf UTF-8

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
28 Beiträge 5 Kommentatoren 2.0k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • hg6806H hg6806

    Habe als Ausgabe mal einen neuen Datenpunkt erzeugt, in den wird nun auch was geschrieben, jedoch auch unkodiert, also noch ohne Umlaute.

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

    CodierknechtC Online
    CodierknechtC Online
    Codierknecht
    Developer Most Active
    schrieb am zuletzt editiert von Codierknecht
    #19

    @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.

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
    HmIP|ZigBee|Tasmota|Unifi
    Zabbix Certified Specialist
    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

    1 Antwort Letzte Antwort
    0
    • CodierknechtC Online
      CodierknechtC Online
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von
      #20

      @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).

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      1 Antwort Letzte Antwort
      0
      • hg6806H Offline
        hg6806H Offline
        hg6806
        Most Active
        schrieb am zuletzt editiert von
        #21

        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

        CodierknechtC 1 Antwort Letzte Antwort
        0
        • hg6806H hg6806

          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

          CodierknechtC Online
          CodierknechtC Online
          Codierknecht
          Developer Most Active
          schrieb am zuletzt editiert von
          #22

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

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Certified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          hg6806H 1 Antwort Letzte Antwort
          0
          • CodierknechtC Codierknecht

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

            hg6806H Offline
            hg6806H Offline
            hg6806
            Most Active
            schrieb am zuletzt editiert von
            #23

            @codierknecht

            "Ladevorgang wurde gestartet... (bei Problemen: Pr\u00fcfe bitte zuerst in den Einstellungen 'Ladeeinstellungen' und 'Konfiguration'.)"
            
            CodierknechtC 1 Antwort Letzte Antwort
            0
            • hg6806H hg6806

              @codierknecht

              "Ladevorgang wurde gestartet... (bei Problemen: Pr\u00fcfe bitte zuerst in den Einstellungen 'Ladeeinstellungen' und 'Konfiguration'.)"
              
              CodierknechtC Online
              CodierknechtC Online
              Codierknecht
              Developer Most Active
              schrieb am zuletzt editiert von
              #24

              @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;
              

              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
              HmIP|ZigBee|Tasmota|Unifi
              Zabbix Certified Specialist
              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

              hg6806H 1 Antwort Letzte Antwort
              0
              • CodierknechtC Codierknecht

                @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;
                
                hg6806H Offline
                hg6806H Offline
                hg6806
                Most Active
                schrieb am zuletzt editiert von
                #25

                @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!

                CodierknechtC 1 Antwort Letzte Antwort
                0
                • hg6806H hg6806

                  @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!

                  CodierknechtC Online
                  CodierknechtC Online
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #26

                  @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));
                    });
                  

                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                  HmIP|ZigBee|Tasmota|Unifi
                  Zabbix Certified Specialist
                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                  hg6806H 1 Antwort Letzte Antwort
                  0
                  • CodierknechtC Codierknecht

                    @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));
                      });
                    
                    hg6806H Offline
                    hg6806H Offline
                    hg6806
                    Most Active
                    schrieb am zuletzt editiert von
                    #27

                    @codierknecht

                    Ja, geht auch so. Danke nochmals!

                    CodierknechtC 1 Antwort Letzte Antwort
                    0
                    • hg6806H hg6806

                      @codierknecht

                      Ja, geht auch so. Danke nochmals!

                      CodierknechtC Online
                      CodierknechtC Online
                      Codierknecht
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #28

                      @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.

                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                      HmIP|ZigBee|Tasmota|Unifi
                      Zabbix Certified Specialist
                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      760

                      Online

                      32.6k

                      Benutzer

                      82.0k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe