Non C programmer question: In your patch there, does sout have to be freed or anything, or am I missing something?
-----Original Message----- From: sqlite-users [mailto:[email protected]] On Behalf Of Olivier Mascia Sent: Monday, June 05, 2017 6:20 PM To: SQLite mailing list Subject: Re: [sqlite] [SPAM] Fwd: How to correctly display unicode characters in Windows 10 / cmd.exe / sqlite3.exe? Patch shell.c to get it to output to the console using WriteConsoleW and not fputs(). For a starter, see shell.c (3.19.2) around line 372 and following, function utf8_printf(). The intent is right (Windows needs some help to output UTF8), the implementation is not. For proper unicode console output on Windows you need to use WriteConsoleW(), and not the C library. shell.c @@ -380,10 +380,12 @@ va_start(ap, zFormat); if( stdout_is_console && (out==stdout || out==stderr) ){ char *z1 = sqlite3_vmprintf(zFormat, ap); - char *z2 = sqlite3_win32_utf8_to_mbcs_v2(z1, 0); + WCHAR *z2 = sqlite3_win32_utf8_to_unicode(z1); sqlite3_free(z1); - fputs(z2, out); - sqlite3_free(z2); + DWORD sout; + WriteConsoleW(GetStdHandle((out == stdout) ? STD_OUTPUT_HANDLE : STD_ERROR_HANDLE), + z2, wcslen(z2), &sout, 0); + sqlite3_free(z2); }else{ vfprintf(out, zFormat, ap); } And there you go: sqlite> select char(0x20ac); char(0x20ac) € sqlite> ... -- Best Regards, Meilleures salutations, Met vriendelijke groeten, Olivier Mascia, http://integral.software _______________________________________________ sqlite-users mailing list [email protected] http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list [email protected] http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

