Skip to content

Commit f60d633

Browse files
authored
Merge pull request #40632 from compnerd/utf-8
stdlib: change the console to UTF-8 on start
2 parents d1bb98b + 9847cab commit f60d633

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

stdlib/public/stubs/LibcShims.cpp

+12-3
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,20 @@
3131

3232
#include "../SwiftShims/LibcShims.h"
3333

34+
#if defined(_WIN32)
35+
static void __attribute__((__constructor__))
36+
_swift_stdlib_configure_console_mode(void) {
37+
static UINT uiPrevConsoleCP = GetConsoleOutputCP();
38+
atexit([]() { SetConsoleOutputCP(uiPrevConsoleCP); });
39+
SetConsoleOutputCP(CP_UTF8);
40+
}
41+
#endif
42+
3443
SWIFT_RUNTIME_STDLIB_INTERNAL
3544
__swift_size_t _swift_stdlib_fwrite_stdout(const void *ptr,
36-
__swift_size_t size,
37-
__swift_size_t nitems) {
38-
return fwrite(ptr, size, nitems, stdout);
45+
__swift_size_t size,
46+
__swift_size_t nitems) {
47+
return fwrite(ptr, size, nitems, stdout);
3948
}
4049

4150
SWIFT_RUNTIME_STDLIB_SPI

0 commit comments

Comments
 (0)