Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JSON.stringify() to UTF-8

Javascript uses as far as I know UTF-16 fundamentally as a standard for strings. With JSON.stringify() I can create a JSON string from an object.

Is that JSON string UTF-16 encoded?

Can I convert (hopefully fast) that string to UTF-8 to save bandwidth for huge files (1MB JSON)?

like image 684
Sebastian Barth Avatar asked Dec 02 '14 15:12

Sebastian Barth


1 Answers

JavaScript engines are allowed to use either UCS-2 or UTF-16.

So, yes, JSON.stringify() will return a string in whatever encoding your implementation uses for strings. If you were to find a way to change that encoding within the context of your script, it would no longer be a valid JavaScript string.

For serialising it over a network, though, I would expect it to automatically be transcoded into the character set of the HTTP request (assuming you're talking about HTTP). So if you send it via HTTP POST with a character set of UTF-8, your browser should transparently handle the transcoding of that data before it is sent.

Otherwise browsers would really struggle with character set handling.

like image 60
Lightness Races in Orbit Avatar answered Sep 19 '22 18:09

Lightness Races in Orbit