Rolf B: JavaScript, Bytes und Zeichen

Beitrag lesen

Hallo dedlfix,

Die interne Kodierung ist im Prinzip nicht weiter relevant. Man kommt damit üblicherweise nicht in Berührung.

Die modifizierte Pilatus-Frage: Was ist üblich? Ist diese Aussage Westizismus? Etliche Ostasiatische Sprachen brauchen die Plane 1, um ihre Zeichen vollständig darstellen zu können. Für die sind JavaScript-Strings die Hölle, sie können die Funktionen von String.prototype nicht verwenden. Und wenn Dir irgendwer einen Unicode String wie 'de\u0301licieux' statt 'délicieux' vorwirft, steckst Du in der zusätzlichen Hölle der combining characters, selbst wenn Du in der BMP bleibst.

Unicode ist als 16-bit Code designed worden. JavaScript, Java und C# stammen aus dieser Zeit. Sie wollten modern und Unicode-fähig sein und haben die 16-bittige UCS-2 Codierung verwendet, sind aber von Unicode 3.1 überrollt worden.

Nachdem Unicode um die Planes 1-16 erweitert wurde und UTF-16 herauskam, musste JS um Codepoint-Funktionalität erweitert werden, das ist aber nur rudimentär mittels String.fromCodePoint und String.prototype.codePointAt erfolgt.

JavaScript und PHP haben da analoge Probleme. PHP Strings sind bytecodiert, funktionieren also nur mit Single-byte Codepages problemlos. Ein UTF-8 String in PHP benötigt die mb-Funktionen.

JavaScript-Strings waren ursprünglich UCS-2 codiert, d.h. ein BMP Zeichen ist einem 16-bit Wert (einem Charcode) zugeordnet. Mit Unicode 3.1 musste das auf UTF-16 umgedeutet werden, und die Zeichen der Planes 1-16 durch die entsprechenden Surrogat-Paare im Bereich D8-DF dargestellt werden.

Im Gegensatz zu PHP hat JavaScript aber keine mc-Funktionen (multicharcode Strings), man muss dafür eine passende Bibliothek verwenden, z.B. unistring. Die behandelt dann auch das spezielle Unicode-Problem der combining characters, z.B. 'e\u0301' vs 'é'.

Rolf

--
sumpsi - posui - clusi
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