dedlfix: JavaScript, Bytes und Zeichen

Beitrag lesen

Tach!

Ein Eurozeichen besteht aus 3 Bytes mit den Wertigkeiten E2 82 AC.

in UTF-8 codiert, ja. In anderen Textcodierungen sieht es wieder völlig anders aus.

Wenn ich jedoch mit diesen Wertigkeiten die Bytes einzeln erzeuge und mit += aneinanderhänge erkennt JS das nicht als Eurozeichen sondern als 3 einzelne Zeichen.

Wenn man das als \xE2\x82\xAC notiert, sind das keine Bytes sondern Zeichen.

Korrekt. Weil Javascript seine eigenen interne Darstellung von Zeichen hat (Marc sagte neulich was von UTF-16, ich weiß es nicht besser). An die interne Codierung, die JS hier verwendet, kommst du aber meines Wissens nicht dran.

Die interne Kodierung ist im Prinzip nicht weiter relevant. Man kommt damit üblicherweise nicht in Berührung. Vereinfacht kann man sagen, dass Javascripts String-Philosophie zeichenorientiert ist. Es arbeitet mit dem Zeichensatz Unicode und Kodierungen spielen normalerweise keine Rolle. Natürlich müssen die Zeichen in der Physik irgendwie kodiert werden, und es gibt auch einige Funktionen, die mit Kodierungen umgehen. Doch für das allgemeine Arbeiten mit Strings ist das nicht erforderlich.

Das versuchte ich Emil/hotti/pl schon mehrfach zu erklären, aber er weigert sich anscheinend beharrlich das anzunehmen und scheitert regelmäßig daran, wenn er sein Weltbild von Bytes auf Javascript überzustülpen versucht.

Was muss ich tun daß JS die aneinandergeängten Bytes als ein Zeichen, also das Eurozeichen erkennt?

Nicht auf Byte-Ebene arbeiten, sondern ein einzelnes Zeichen mit dem Code 0x20AC erzeugen.

Wenn du es unbedingt von der Byte-Ebene aus bearbeiten willst, kannst du die Byte-Sequenz auch selbst zum korrespondierenden Zeichencode verrechnen.

Eigentlich findet Zeichenkodierung außerhalb von Javascript statt. Der HTML-Parser dekodiert bereits den Datenstrom zu Zeichen, bevor es an Javascript übergeben wird.

Wenn man unbedingt mit Zahlen arbeiten möchte, gibt es String.fromCharCode() und String.fromCodePoint() zum Umwandeln. Aber das sind eben CodePoints, keine Bytes.

dedlfix.

0 65

JavaScript, Bytes und Zeichen

Emil
  • javascript
  1. 0
    Der Martin
    1. 0
      Emil
      1. 0
        Emil
    2. 3
      dedlfix
      1. 0
        Rolf B
        1. 0
          dedlfix
        2. 0
          Emil
          1. 0
            dedlfix
            1. 0
              Emil
              1. 0
                dedlfix
                1. -1
                  Emil
                  1. 0
                    dedlfix
                    1. 0
                      Emil
                      1. 0
                        dedlfix
                    2. 0
                      Gunnar Bittersmann
                      1. 0
                        dedlfix
                        1. -1
                          Gunnar Bittersmann
                          • typografie
                          1. 0
                            Rolf B
                            1. 0
                              Gunnar Bittersmann
                              1. 0
                                Rolf B
                                1. 0
                                  Gunnar Bittersmann
                                  1. 0
                                    Rolf B
                                    1. 0
                                      JürgenB
              2. 0
                Emil
                1. 0
                  dedlfix
                  1. 0
                    Emil
                    1. 0
                      dedlfix
                      1. 0
                        Emil
                        1. 1
                          dedlfix
                          1. 0
                            Emil
                            1. 0
                              dedlfix
                              1. 0
                                Emil
                                1. 0
                                  dedlfix
                                  1. 0
                                    Emil
                                    1. 0
                                      dedlfix
                                      1. 0
                                        Emil
                                      2. 0
                                        dedlfix
                                  2. 0
                                    Gunnar Bittersmann
                                    1. 0
                                      Emil
                                      1. 0
                                        Gunnar Bittersmann
                                        1. 0
                                          dedlfix
                                          1. 0
                                            Gunnar Bittersmann
                                            1. 0
                                              Emil
                                              1. 0
                                                Mitleser
                                                1. 0

                                                  Schwimmen und Schlaganfall

                                                  Emil
                                                  • menschelei
                                    2. 0
                                      dedlfix
                                      1. 0
                                        Emil
                                      2. 0
                                        Matthias Apsel
                                        1. 0
                                          Gunnar Bittersmann
                                          • markdown
                                          • zu diesem forum
                                          1. 0
                                            Matthias Apsel
                                            1. 0
                                              Gunnar Bittersmann
                                              1. 0
                                                Matthias Apsel
                                                1. 1
                                                  Gunnar Bittersmann
                                2. 0
                                  1unitedpower
                                  1. 0

                                    TextDecoder

                                    Emil
                    2. 0
                      Rolf B
                      1. 0
                        Emil
                        1. 0
                          Rolf B
                          1. 0
                            Emil
      2. 0

        JavaScript, Bytes, Zeichen und Kontext

        Emil
  2. 0

    Antwort nicht angezeigt?

    Lisa
    • zu diesem forum
    1. 0
      Christian Kruse
      1. 0
        Tabellenkalk
        1. 0
          JürgenB