티스토리 뷰
목차
반응형
[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 출력하기
보시면 아시겠지만, toAscii로 변환하면 QString cout 잘되지만 Utf8이나 toLocal8Bit는 한글이 깨지네요.
그렇지만 영어는 잘 나옵니다.
1 | QString test_str("go to a rentcar trip"); | cs |
[Qt프로그래밍] QString cout 출력하기
그림처럼 영어는 QString cout 잘 나오는 게 확인됩니다.
- 차이가 뭐냐면, Utf8 환경에선 Utf8 환경으로 변환해야 해요. 저는 그게 아니라 깨진거죠.
- 마찬가지로 toLocal8bit도 제 윈도우 환경이 안 맞으니 깨지는 거예요. 환경 문제라는 겁니다.
그래도 공통적으로 toAscii를 사용하면 한국 사람들 입장에선 깨지는 일이 거의 없습니다. Qt프로그래밍에서 QString cout 출력하는 문제는 대게 toAscii로 해결이 돼요.
[Qt프로그래밍] QString cout 출력하기
반응형