dedlfix: Zeichenkodierung

Beitrag lesen

Tach!

nur dass ich das richtig verstanden habe, weil ich es interessant finde und mich leider noch nie so richtig mit dieser Thematik beschäftigt habe. Methoden wie fromCharCode() verlangen die Nummer eines Unicode-Zeichens. Mir kann egal sein, wie die JavaScript-Engine dieses Zeichen im Speicher hält, es ist nur wichtig, dass ich die Unicode-Nummer weiß. Wenn ich aber dieses Zeichen auf der Festplatte speichern möchte, brauche ich ein Encoding wie UTF-8, dass dieses Zeichen dann irgendwie in Bytefolgen gießt. Habe ich das so richtig wiedergegeben?

Ja, nur dass klassisches JavaScript nichts auf der Festplatte speichern kann. Es gibt zwar mittlerweile den LocalStorage im Browser, aber JS kann nur entsprechende API-Funktionen aufrufen und seinen String übergeben und entgegennehmen. Das Kodieren und Speichern findet in Ebenen unterhalb von Javascript statt.

String.fromCharCode() kann aber nur die BMP, also Zeichen unterhalb von CodePoint 65536. Für den vollen Zeichenvorrat, inklusive solch wertvoller Zeichen wie Nummer 128169 (1F4A9), muss man nicht die Funktionen mit CharCode im Namen nehmen, sondern die mit CodePoint, also String.fromCodePoint() und String.prototype.codePointAt().

Wie @TS unter diesen Umständen auf 2 Zeichen kommt wird wohl immer sein Geheimnis bleiben.

Vermutlich aus dem selben Grund wie ich: Nicht besser gewusst, d.h. ich hätte auch angenommen, dass das Euro-Zeichen mit 2 Bytes codiert wird.

Für Javascript hat es nur eine Nummer, den Unicode-CodePoint.

Man kann davon ausgehen, dass unter der Haube, also in den Tiefen der Javascript-Engine, UTF-16 oder eine vergleichbare Zwei-Byte-Kodierung zum Einsatz kommt. Damit lässt sich in wesentlichen Teilen (sprich unterhalb CodePoint 65536) einfacher hantieren als mit UTF-8 mit seiner deutlich variableren Länge, die man ständig beachten müsste. Das wären dann aber zwei Byte, nicht zwei Zeichen.

dedlfix.

0 72

Zeichenkodierung

pl
  • javascript
  1. 3

    Zeichenckodierung

    Christian Kruse
  2. 1
    Gunnar Bittersmann
    1. 0
      TS
      • codierung
      • javascript
      1. 1
        Gunnar Bittersmann
      2. 0
        dedlfix
      3. -2
        pl
        1. 1
          Rolf B
          1. 0
            Gunnar Bittersmann
            1. 0
              Rolf B
            2. 1
              usb
              1. 0
                Rolf B
                • codierung
                • javascript
                • unicode
                1. 0
                  usb
                  1. 0
                    Rolf B
          2. -1
            pl
            1. 0
              Rolf B
              1. 0
                pl
                1. 0
                  Patrick C.
                  1. 0
                    dedlfix
                    1. 0
                      Gunnar Bittersmann
                    2. 0
                      Rolf B
                  2. -4
                    pl
                    1. 0
                      Rolf B
                      1. -4
                        pl
                        1. 0
                          Gunnar Bittersmann
                          1. 0
                            pl
                            1. 0
                              Gunnar Bittersmann
                        2. 0
                          Rolf B
                          1. 0
                            pl
                            1. 0
                              Rolf B
                              1. 0
                                pl
                                1. 0
                                  Rolf B
                                  1. 0
                                    pl
                            2. 0
                              pl
                              1. 0
                                Rolf B
                                1. 0
                                  dedlfix
                                  1. 0
                                    Rolf B
                                    1. 1
                                      dedlfix
                                      1. 0
                                        Rolf B
                                    2. 0
                                      pl
                                      1. 1
                                        dedlfix
                                        1. 0
                                          pl
                                          1. 0
                                            dedlfix
                                          2. 0
                                            Rolf B
                                            1. 0
                                              pl
                                            2. 0
                                              pl
                                              1. 0
                                                Rolf B
                                                1. 0
                                                  pl
                                                  1. 0
                                                    TS
                                      2. 0
                                        usb
                                        1. 0
                                          pl
                                          1. 0
                                            usb
                                2. 0
                                  pl
                                3. 3
                                  1unitedpower
                                  1. 0
                                    Christian Kruse
                                  2. 0
                                    Rolf B
                      2. 0
                        pl
                        1. 0
                          Christian Kruse
                          1. 0
                            Gunnar Bittersmann
                            1. 0
                              Rolf B
                              1. 0
                                Auge
                                1. 0
                                  Gunnar Bittersmann
                        2. 1
                          dedlfix
                        3. 0
                          Rolf B
                          1. -1
                            pl
                            1. 0
                              Rolf B
                              1. 0
                                Gunnar Bittersmann
                                1. 0
                                  dedlfix
                                2. 0
                                  Rolf B
  3. 1
    MudGuard
  4. 2
    Rolf B
    1. 0
      pl