@doongjohn Did you try setting Japanese code-page ( **chcp 932** ) prior to try writing Japanese?
My tests have shown the following: When experimental UTF-8 support is enabled in advanced language settings on Windows, all input turns into 0x00 characters no matter what. When experimental UTF-8 support is disabled, the following things happen: **setConsoleCP(65001)** normally causes input to turn into 0x00 characters, while certain combinations of code-page and set language for non-Unicode programs yield incorrect characters instead. **setConsoleOutputCP(65001)** with manual conversion from local (input) encoding to UTF-8 works when typing **Korean with Korean code-page** or **Greek with Greek code-page**. (Note that this works in a way somehow similar to my code.) When typing **Greek with Korean code-page** things are affected by **language for non-Unicode programs** : * If this is set to **Greek** , 0x00 characters are received. * If this is set to **Korean** , the correct (Greek) code-points are received and printed on screen. When typing **Korean with Greek code-page** things are affected by **language for non-Unicode programs** : * If this is set to **Korean** , invalid characters are received. * If this is set to **Greek** , the correct (Korean) code-points are received, but they cannot be printed correctly on screen. The last two observations indicate that things work differently when code-page and language for non-Unicode programs match. Again these observations were done using MinGW as the backend. If someone uses a different backend there is a chance that something might work differently.