Dans mon code JavaScript j'ai besoin de rédiger un message à un serveur dans ce format:
<size in bytes>CRLF
<data>CRLF
Exemple:
3
foo
Les données peuvent contenir des caractères unicode. J'ai besoin de les envoyer, comme UTF-8.
Je suis à la recherche pour la plupart de la croix-navigateur de façon à calculer la longueur de la chaîne en octets en JavaScript.
J'ai essayé de composer ma charge utile:
return unescape(encodeURIComponent(str)).length + "\n" + str + "\n"
Mais il ne me donne pas de résultats précis pour les anciens navigateurs (ou, peut-être les cordes dans ces navigateurs en UTF-16?).
Des indices?
Mise à jour:
Exemple: la longueur en octets de la chaîne ЭЭХ! Naïve?
en UTF-8 est de 15 octets, mais certains navigateurs rapport de 23 octets au lieu.