programing

std :: string을 QString으로 변환

nasanasas 2020. 11. 13. 08:21
반응형

std :: string을 QString으로 변환


내가 std::string content알고있는 UTF-8 데이터가 있습니다. 나는 그것을 QString. Qt에서 from-ASCII 변환을 피하면서 어떻게해야합니까?


다음 을 취하는 QString함수 fromUtf8가 있습니다 const char*.

QString str = QString::fromUtf8(content.c_str());

QString::fromStdString(content)더 견고하기 때문에 더 좋습니다. 또한 std::stringUTF-8로 인코딩 된 경우 와 정확히 동일한 결과를 제공해야합니다 QString::fromUtf8(content.data(), int(content.size())).


일반적으로 변환을 수행하는 가장 좋은 방법은 fromUtf8 메서드를 사용하는 것이지만 문제는 로케일에 종속 된 문자열이있을 때입니다.

이 경우 fromLocal8Bit 를 사용하는 것이 좋습니다 . 예:

std::string str = "ëxample";
QString qs = QString::fromLocal8Bit(str.c_str());

이후 Qt5 fromStdString 내부적 fromUtf8를 사용하는, 그래서 당신은 모두 사용할 수 있습니다 :

inline QString QString::fromStdString(const std::string& s) 
{
return fromUtf8(s.data(), int(s.size()));
}

참고 URL : https://stackoverflow.com/questions/4338067/convert-stdstring-to-qstring

반응형