diff --git a/api/builtin.hpp b/api/builtin.hpp index 4c6c273a1..a6090a75a 100644 --- a/api/builtin.hpp +++ b/api/builtin.hpp @@ -46,10 +46,13 @@ namespace jule inline void out(const T &obj) noexcept { #ifdef OS_WINDOWS - const std::vector utf16_str = jule::utf16_from_str(jule::to_str(obj)); - HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); - wprintf((wchar_t*)utf16_str.data()); - //WriteConsoleW(handle, utf16_str.data(), utf16_str.size(), nullptr, nullptr); + if (GetConsoleOutputCP() == 65001) { + std::cout << obj; + } else { + const std::vector utf16_str = jule::utf16_from_str(jule::to_str(obj)); + HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); + WriteConsoleW(handle, utf16_str.data(), utf16_str.size(), nullptr, nullptr); + } #else std::cout << obj; #endif