JSON.stringify() to UTF-8

38,360

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.

Share:
38,360
Sebastian Barth
Author by

Sebastian Barth

Updated on July 11, 2022

Comments

  • Sebastian Barth
    Sebastian Barth almost 2 years

    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)?