Question: As the question says, do I have to do in order to print Unicode characters to the output console? And what settings do I have to use? Right now I have this code: 

```
wchar_t* text = L"the 来";
wprintf(L"Text is %s.\n", text);
return EXIT_SUCCESS;

```

and it prints:
`Text is the ?.`

I've tried to change the output console's font to MS Mincho, Lucida Console and a bunch of others but they still don't display the japanese character. 

So, what do I have to do?

Answer: 
This is code that works for me (VS2017) - project with Unicode enabled

```
#include <stdio.h>
#include <io.h>
#include <fcntl.h>

int main()
{
    _setmode(_fileno(stdout), _O_U16TEXT);
    wchar_t * test = L"the 来. Testing unicode -- English -- Ελληνικά -- Español." ;

    wprintf(L"%s\n", test);
}

```

This is console

[![output](https://i.stack.imgur.com/ZDf9q.png)](https://i.stack.imgur.com/ZDf9q.png)

After copying it to the Notepad++ I see the proper string

**the 来. Testing unicode -- English -- Ελληνικά -- Español.**

OS - Windows 7 English, Console font - Lucida Console

Edits based on comments
=======================

I tried to fix the above code to work with VS2019 on Windows 10 and best I could come up with is this

```
#include <stdio.h>
int main()
{
    const auto* test = L"the 来. Testing unicode -- English -- Ελληνικά -- Español.";

    wprintf(L"%s\n", test);
}

```

When run it "as is" I see 
[![Default console settings](https://i.stack.imgur.com/TNVu4.png)](https://i.stack.imgur.com/TNVu4.png)

When it is run with console set to Lucida Console fond and UTF-8 encoding I see
[![Console switched to UTF-8](https://i.stack.imgur.com/g8WNO.png)](https://i.stack.imgur.com/g8WNO.png)

As the answer to 来 character shown as empty rectangle - I suppose is the limitation of the font which does not contain all the Unicode gliphs

When text is copied from the last console to Notepad++ all characters are shown correctly
The characters '来' may not be in your system character code page. You need to save the characters as utf-8.

in vs2013, I try this:

```
// save as utf-8
#pragma execution_character_set( "utf-8" )

#include <Windows.h>

char *s = "the 来";

int main(){
    // set console code page to utf-8
    SetConsoleOutputCP(65001);
    printf("%s\n",s);
    return 0;
}

```