Open
Description
It's 2019, after all. Maybe we should introduce a flag that starts up the pseudoconsole host in codepage 65001 so that we make good on our promise of "emoji just work and everything else works like it should too," and use WT as a real opportunity to push the boundaries here.
🌛
💪 💪
👖
maintainer note, Aug 2023
It's {{current_year}}, after all
Also, we want to take into account arbitrary codepages, ala #15678
Metadata
Metadata
Assignees
Labels
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
miniksa commentedon Jul 3, 2019
I_am_okay_with_this.jpg
MicheleCicciottiWork commentedon Jul 4, 2019
Does cmd support batch scripts in codepage 65001 now?
hcoona commentedon Jul 5, 2019
+1 for running *nix tools with CJK outputs
For example: fc-list in texlive
wt.exe
#1852rivy commentedon Jul 6, 2019
A work-around in the meanwhile is ... enable
BETA: Use Unicode UTF-8 for worldwide language support
in the "Control Panel \ Clock and Region \ Region \ Administrative \ Change system locale..." dialog box and rebooting. Do note theBETA
prefix.zadjii-msft commentedon Jul 8, 2019
I'm on board with this, esp. if we add a
"disableAutoCp65001"
(boy that needs a better name) setting to disable this behavior, set tofalse
by default.driver1998 commentedon Sep 26, 2019
Maybe we need to somehow enable localized messages in CMD while codepage is 65001.
Now it is forced to be English.
driver1998 commentedon Oct 4, 2019
This changes the system code page to 65001, if you have any ANSI application, they will be forced to use UTF-8.
It should be fine for English users, but for CJK users, that will be a big trouble.
31 remaining items
o-sdn-o commentedon May 20, 2023
Since std input works well with UTF-8 encoding today #14745, may be it's worth to add some sort of a syntactic sugar to push/pop the initial state of the system code page for new Windows console applications? Wrap it up in a single API call or put it into a specific header file (e.g. <iostream>) to reduce following boilerplate code at the beginning
The
#define UTF8_EVERYWHERE
key is used to indicate the programmer’s intention to use UTF-8 encoding instead of original system code page.This would be extremely helpful for newbie console programmers. All of them are completely confused with text encodings. In addition, cross-platform compatibility is achieved automatically.
zadjii-msft commentedon Jul 5, 2023
xref some discussion in #15504
pretty sure our plan was to do:
compatibility.defaultToutf8
in the Terminal settings, which sets--flag
to conpty to tell it to default to CP65001 instead.Now it's just a matter of plumbing, and deciding if we really want to do the
--flags
thing or the--defaultToUtf8
thing.More notes
conhost --codepage 65001
to start in utf-8, or accept an arbitrary one.conhost --codepage
WITHOUT AN ARG to use the one inHKCU/Console/Codepage