Create a gist now

Instantly share code, notes, and snippets.

Handle invalid JS character sequences
/**
* encode to handle invalid UTF
*
* If Chrome tells you "Could not decode a text frame as UTF-8" when you try sending
* data from nodejs, try using these functions to encode/decode your JSON objects.
*
* see discussion here: http://code.google.com/p/v8/issues/detail?id=761#c8
* see also, for browsers that don't have native JSON: https://github.com/douglascrockford/JSON-js
*
* Any time you need to send data between client and server (or vice versa), encode before sending,
* and decode upon receiving. This is useful, for example, if you are using socket.io for real-time
* client/server communication of data fetched from a third-party service like Twitter, which might
* contain Emoji, or other UTF characters outside the BMP.
*/
function strencode( data ) {
return unescape( encodeURIComponent( JSON.stringify( data ) ) );
}
function strdecode( data ) {
return JSON.parse( decodeURIComponent( escape ( data ) ) );
}
@jonlong
jonlong commented Apr 17, 2012

Thank you!

@dougalcampbell
Owner

@jonlong - glad you found it useful! BTW, I think I saw something about how this might be fixed in node 0.8?

@stagas
stagas commented May 1, 2012

Fixed my case also, thanks!

@FGRibreau

Thanks !

@victusfate

Thanks

will be trying this native v8 side later this morning

@mandria
mandria commented Mar 29, 2016

thanks it works!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment