Gunnar Bittersmann: JS mit UTF-8 falsche Darstellung in HTML5

Beitrag lesen

@@Nikolas

"\u{1d11e}" ist ECMAScript 6 aus dem Jahr 2015. Es müsste eine neue Version von JSON geben um das zu unterstützen. Ich denke nicht dass das passieren wird. Es gibt keinen dringenden Grund zur Änderung.

Damit hast du vermutlich recht. JSON ist ein Format zur Datenübertragung, nicht zur Datenverarbeitung.

Soweit ich weiss speichert ES 6 die Zeichen intern nach wie vor als surrogate pairs.

“Internally, JavaScript represents astral symbols as surrogate pairs, and it exposes the separate surrogate halves as separate ‘characters’.”

Nur der Umgang damit ist einfacher. Und "\ud834\udd1e" funktioniert nach wie vor.

Ist er das?

'💩'.length ergibt nach wie vor 2; ebenso 'ä'.length.

Man muss sich seine eigenen Funktionen schreiben, um die Länge eines Strings zu erhalten, analog zu den mb_…-Funktionen in PHP.

JavaScript has a Unicode problem.

LLAP 🖖

--
Ist diese Antwort anstößig? Dann könnte sie nützlich sein.