C++11 has four character types:

char: 1 byte
wchar_t: unspecified character type equal to or larger than char (in
practice, 16-bit on some platforms, 32-bit on others)
char16_t: 16-bit quantity representing a UTF-16 code unit
char32_t: 32-bit quantity representing a Unicode code point

JavaScript strings, unfortunately, happen to be defined as arrays of UTF-16
code units.

Thus, if you assume that your application uses wchar_t as if it was
char16_t, which it sounds like you are, then you can map directly from
std::wstring or wchar_t* to JavaScript strings.

embind, as policy, assumes that wchar_t is approximately equal to char16_t.

I don't believe there is a more efficient mechanism than looping from
character to character in JavaScript.  I think someone once proposed a set
of proper ArrayBuffer -> String text decoders, but I don't know if that
proposal gained traction.


On Mon, Mar 31, 2014 at 3:46 PM, Mark Hahn <[email protected]> wrote:

> My C app uses all wchar_t (16-bit chars).  How do I send strings of these
> back and forth between C and JS?  I am currently looping through char by
> char but this seems inefficient since JS is already using 16-bit strings.
>
> Any ideas?
>
>  --
> You received this message because you are subscribed to the Google Groups
> "emscripten-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Chad Austin
Technical Director, IMVU
http://engineering.imvu.com <http://www.imvu.com/members/Chad/>
http://chadaustin.me

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to