No, the raw pointer is UTF-8, since that's what the plStringStream uses internally.  To use UTF-16, you will have to convert to a string (as you're doing currently) and then use the ToUtf16 method on that to create a buffer you can write as valid UTF-16 data.