티스토리 뷰

목차

    반응형

    [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 출력하기

    반응형