This article covers features introduced in SpiderMonkey 1.8.5

Convert a JavaScript string to a C string.


JS_EncodeStringToBuffer(JSContext *cx, JSString *str, char *buffer, size_t length);
Name Type Description
cx JSContext * A context. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext.
str JSString * A string to encode.
buffer char * A character buffer to receive encoded string.
length size_t The size of buffer in bytes.


JS_EncodeStringToBuffer converts the specified JavaScript str to a C string (an array of 8-bit chars) and fills the specified buffer with up to length bytes of the string. It returns the length of the whole string encoding or (size_t)-1 if the string can't be encoded as bytes. If the returned value is greater than the length you specified, the string was truncated.

To encode to UTF8, use JS::GetDeflatedUTF8StringLength and JS::DeflateStringToUTF8Buffer instead.

See Also