Hello,
has your console the correct output enconding? As far as I know the console starts to output only simple ASCII characters.
You should change the encoding of the console in your code. Have a look at this:
how-to-write-unicode-characters-to-the-console
Regards, Guido
Display Unicode Characters C++/WinRT
This question pertains to your online article: Get Started with C++/WinRT (https://learn.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/get-started). In order to get the unicode characters to display in the console window, I had to add the following includes: #include <fcntl.h>, and #include <io.h>. I also had to set the console mode using the following line of code: int old = _setmode(_fileno(stdout), _O_U16TEXT);. Am I missing something or is the lesson missing something?
Mike Hanson
2 answers
Sort by: Most helpful
-
Guido Franzke 2,196 Reputation points
2020-12-22T06:59:02.673+00:00 -
Michael Hanson 1 Reputation point
2020-12-24T01:29:02.57+00:00 While reading through the first part of this article at https://learn.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/get-started#a-cwinrt-quick-start, the titles would not display on my console window. After researching winrt::hstring, I learned it was UTF-16 based. The console is UTF-8 based. While researching this several articles on the internet said that the font you use to display UTF-16 characters must be a True Type Font. My window is using Consolas. The feed titles would not display.
After further research, others having the same problem were told to set the console window programatically by using the following line:
int old = _setmode(_fileno(stdout), _O_U16TEXT);
. I also included fcntl.h and io.h header files. I ran the program and the titles appeared.I'm running Windows 10 build 19042.685. Visual Studio 2019 version 16.8.3.
Because I had to make the changes to the program to get it to work, is the article flawed?
Please verify.
Thanks.