본문 바로가기
C++ 200제/코딩 IT 정보

[Qt프로그래밍] QString cout 출력하기

by vicddory 2017. 7. 30.

[Qt프로그래밍] QString cout 출력하기


Qt프로그래밍할 때, 부득이 QDebug() 대신 cout 출력이 필요한 경우가 발생합니다. 이럴 땐 QString 변수를 바로 호출해 cout 출력하면 안 되고, 중간에 변환해야 합니다.


QString.toAscii().constData() 를 사용해야 정상적으로 출력돼요.


1
2
3
4
5
6
7
8
9
QString test_str("렌트카 타고 여행~");
 
std::string ascii_str = test_str.toAscii().constData();
std::string utf8_str = test_str.toUtf8().constData();
std::string locale_str = test_str.toLocal8Bit().constData();
 
cout << "toAscii : " << ascii_str << endl;
cout << "toUtf8 : " << utf8_str << endl;
cout << "toLocal8bit : " << locale_str << endl;
cs


Qt프로그래밍 QString cout[Qt프로그래밍] QString cout 출력하기


보시면 아시겠지만, toAscii로 변환하면 QString cout 잘되지만 Utf8이나 toLocal8Bit는 한글이 깨지네요.

그렇지만 영어는 잘 나옵니다.


1
QString test_str("go to a rentcar trip");
cs


Qt프로그래밍 QString[Qt프로그래밍] QString cout 출력하기


그림처럼 영어는 QString cout 잘 나오는 게 확인됩니다.


- 차이가 뭐냐면, Utf8 환경에선 Utf8 환경으로 변환해야 해요. 저는 그게 아니라 깨진거죠.

- 마찬가지로 toLocal8bit도 제 윈도우 환경이 안 맞으니 깨지는 거예요. 환경 문제라는 겁니다.


그래도 공통적으로 toAscii를 사용하면 한국 사람들 입장에선 깨지는 일이 거의 없습니다. Qt프로그래밍에서 QString cout 출력하는 문제는 대게 toAscii로 해결이 돼요.


[Qt프로그래밍] QString cout 출력하기

댓글