I have a wstring
declared as such:
// random wstring
std::wstring str = L"abcàdëefŸg€hhhhhhhµa";
The literal would be UTF-8 encoded, because my source file is.
[EDIT: According to Mark Ransom this is not necessarily the case, the compiler will decide what encoding to use - let us instead assume that I read this string from a file encoded in e.g. UTF-8]
I would very much like to get this into a file reading (when text editor is set to the correct encoding)
abcàdëefŸg€hhhhhhhµa
but ofstream
is not very cooperative (refuses to take wstring
parameters), and wofstream
supposedly needs to know locale and encoding settings. I just want to output this set of bytes. How does one normally do this?
EDIT: It must be cross platform, and should not rely on the encoding being UTF-8. I just happen to have a set of bytes stored in a wstring
, and want to output them. It could very well be UTF-16, or plain ASCII.
Why not write the file as a binary. Just use ofstream with the std::ios::binary setting. The editor should be able to interpret it then. Don't forget the Unicode flag 0xFEFF at the beginning. You might be better of writing with a library, try one of these:
http://www.codeproject.com/KB/files/EZUTF.aspx