Qt5(Qt4应当也可以)中文的转换(只针对windows)

来源:互联网 发布:前端和php哪个好学 编辑:程序博客网 时间:2024/06/05 06:54

Qt中使用中文也不算麻烦,只是到处都要用QTextCodec* toUnicode一下,好奇到底Qstring是怎么编码的,我对unicode标准也没兴趣了解,只是 dump 下,看下wchar_t怎么不能用。测试代码:

wchar_t* pWideString = L"我们的大中国";QString str = pLocale->toUnicode("我们的大中国");

然后逐一比较,根据测试及相应的printf dump出来的结果,在Qt中QString保存的编码和wchar_t一致。嗯,这就好办了:

 

QString str;const wchar_t* pWideString = L"我要显示乱码!";str.resize(lstrlenW(pWideString));memcpy(str.data(), pWideString, lstrlenW(pWideString) * sizeof(wchar_t));


这样至少在windows下不需要Qt逐步的转码,呵呵,一样的目的,不一样的手段。

 

QString MakeQString(const wchar_t* pUnicodeString){QString tmpStr;tmpStr.resize(lstrlenW(pUnicodeString));memcpy(tmpStr.data(), pUnicodeString, lstrlenW(pUnicodeString) * sizeof(wchar_t));return tmpStr;}