Utf16 string stream does not getting numbers?

45 Views Asked by At

I'm trying to work with utf16 strings on Linux.

I've created a utf16 stringstream as follows:

std::basic_stringstream<char16_t, std::char_traits<char16_t>> u16ss;

My problem is I can't spend numbers on it.

Here a full minimal test:

#include <iostream>
#include <string>
#include <sstream>
#include <locale>
#include <codecvt>
using namespace std;

int main()
{
    std::basic_stringstream<char16_t, std::char_traits<char16_t>> u16ss;
    u16ss << u"abcd-" << 1 << u"-zxc";
    std::wstring_convert<std::codecvt_utf8_utf16<char16_t,0x10ffff,std::little_endian>, char16_t> conv;
    std::cout<<conv.to_bytes(u16ss.str())<<std::endl;
    return 0;
}

The output is:

abcd-

The stringstream stops appending when getting the first number...

How can I fix it?

Thanks for your help.

0

There are 0 best solutions below