Hi! I wrote my first std::wstring program and have found bug in libstdc++! * the exact version of GCC gcc version 4.2.3 (4.2.3-6mnb1) * the system type; Linux Mandriva 2008.1 PowerPack * the options given when GCC was configured/built; ./configure --prefix=/usr --libexecdir=/usr/lib --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-checking=release --enable-languages=c,c++,ada,fortran,objc,obj-c++,java --host=i586-manbo-linux-gnu --with-cpu=generic --with-system-zlib --enable-threads=posix --enable-shared --enable-long-long --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --enable-java-awt=gtk --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --enable-gtk-cairo --disable-libjava-multilib --enable-ssp --disable-libssp * the complete command line that triggers the bug; g++ couttest.cpp -o couttest; ./couttest * the compiler output (error messages, warnings, etc.) There is no error or warrning messages. Important think: $ locale LANG=pl_PL.UTF-8 ... I wrote this program (couttest.cpp): #include #include #include int main() { std::wstring wstr(L"letters1:ąśłółżź"); std::string str("letters2:ąśłółżź"); std::wcout.imbue(std::locale("")); std::cout.imbue(std::locale("")); std::wcout << wstr << std::endl; std::cout << str << std::endl; } Output is: letters1:??????? Second line doesn't appear. Another problem: why I can't see polish letters??? I expect that conversion from UTF-16 to UTF-8 is quite trivial. Besides I think, that conversion is often case. But let change above program: #include #include #include int main() { std::wstring wstr(L"letters1:ąśłółżź"); std::string str("letters2:ąśłółżź"); std::wcout.imbue(std::locale("")); std::cout.imbue(std::locale("")); std::cout << str << std::endl; std::wcout << wstr << std::endl; } Output is: letters2:ąśłółżź letters1:[B�B|z Both lines appear. But in this case wcout output is different than in first program - why??? Correct cout output is not suprise, as sources are in utf-8 - in this case there is no conversion. I think that there are two bugs: 1) lack of whole line in first program's output 2) wrong output (wrong conversion from utf-16 to utf-8). Jacek Jaworski -- Summary: no output when use wcout and cout, wrong utf16 -> utf8 conversion Product: gcc Version: 4.2.3 Status: UNCONFIRMED Severity: trivial Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jaworski at autograf dot pl http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37298