유니코드 출력을 위해 정말 많은 방법을 찾아보았는데,
다음 유튜브에서 해결 방법을 알게 되었다.
지금까지는 계속해서 콘솔 모드, 가상 터미널 모드 변경하고, local 유니코드 설정하고..
구글링 하면 나오는 방법들을 보이는 대로 테스트했지만, 어느 것도 특수문자를 출력해주지 않았다.
하지만, 문제는 위 방법들이 아니였다. 결론적으로는 폰트 문제였다!!!!!!!!!!!!!!!
https://www.youtube.com/watch?v=_UdN1MTYBMY
영상에 따르면, 윈도우에서 한글로는 "문자표"를 연다.
보통 윈도우 콘솔에 기본으로 지정된 폰트는 Consolas라고 한다.
해당 글꼴을 검색하면, 그 글꼴이 출력할 수 있는 모든 유니코드 문자들이 나온다.
가장 아래로 향하면, 다음과 같은 유니코드 아트에 쓰이는 특수문자도 보인다.
원하는 문자를 선택한 뒤,
왼쪽 아래에 나오는 U+ 다음 숫자/숫자+문자 조합을 넣어주거나, 문자를 복사하여 사용하면 된다.
다음과 같이 두 방법 모두 잘 출력된다.
#include <iostream>
#include <locale.h>
int main()
{
CheckMemoryLeak();
SetConsoleOutputCP(CP_UTF8);
setlocale(LC_ALL, "");
std::wcout << L"▒\n";
std::wcout << L"\x2592";
}
결론은, 위 문자들 이외의 특수문자를 출력하고 싶다면,
콘솔의 권한을 받아 폰트를 변경한 뒤에 출력하면 나올 것이다.
폰트 변경은 관리자권한이 필요하다고 들었다. (테스트 아직 진행 X)
'C++ > 공부' 카테고리의 다른 글
[C++/Console Engine] WinAPI로 커스텀 콘솔 엔진 구현하기(7) wchar_t Log (0) | 2025.02.03 |
---|---|
[C++/Console Engine] WinAPI로 커스텀 콘솔 엔진 구현하기(6) DLL 사용하기 (0) | 2025.01.23 |
[C++/Console Engine] WinAPI로 커스텀 콘솔 엔진 구현하기(5) 실행 프로젝트.exe 생성 후 설정 (0) | 2025.01.20 |
[C++/Console Engine] WinAPI로 커스텀 콘솔 엔진 구현하기(4) Log (0) | 2025.01.20 |
[C++/Console Engine] WinAPI로 커스텀 콘솔 엔진 구현하기(3) Key 입력 정의 가져오기, 메모리 누수 검사 기능 추가 (0) | 2025.01.17 |