In meinem JavaScript-Code muss ich eine Nachricht an den Server in diesem Format verfassen:
<size in bytes>CRLF
<data>CRLF
Beispiel:
3
foo
Die Daten können Unicode-Zeichen enthalten. Ich muss sie als UTF-8 senden.
Ich suche nach der browserübergreifendsten Methode, um die Länge der Zeichenfolge in Byte in JavaScript zu berechnen.
Ich habe dies versucht, um meine Nutzlast zusammenzustellen:
return unescape(encodeURIComponent(str)).length + "\n" + str + "\n"
Aber es gibt mir keine genauen Ergebnisse für die älteren Browser (oder vielleicht die Zeichenfolgen in diesen Browsern in UTF-16?).
Irgendwelche Hinweise?
Aktualisieren:
Beispiel: Die Länge der Zeichenfolge ЭЭХ! Naïve?
in UTF-8 in Byte beträgt 15 Byte. Einige Browser melden jedoch stattdessen 23 Byte.