项目需要,简体中文转换成繁体中文;
void MyTemporayIdea::Simplified2Traditional()
{const std::wstring& strSrc = L"中文繁体:中华人民共和国";std::wstring strDest(strSrc.length() + 1, 0);LCMapStringW(0x0804, LCMAP_TRADITIONAL_CHINESE, strSrc.data(), strSrc.length(), (LPWSTR)strDest.data(), strDest.length());QMessageBox::information(this, "", QString::fromStdWString(strDest));
}
以下来自:https://zhuanlan.zhihu.com/p/596979492
繁体中文转简体中文UNICODE版本
wstring Traditional::ToSimple(const wstring & _str)
{LPCWSTR lpSrcStr = _str.c_str();int cchSrc = static_cast<int>(_str.size());int cchDest = static_cast<int>(1+_str.size());LPWSTR lpDestStr = new WCHAR[cchDest]{0};LCMapStringW(0x0804,LCMAP_SIMPLIFIED_CHINESE,lpSrcStr,cchSrc,lpDestStr,cchDest);wstring str(lpDestStr);delete[] lpDestStr;lpDestStr = nullptr;return str;
}
简体中文转繁体中文UNICODE版本
wstring Traditional::FromSimple(const wstring & _str)
{LPCWSTR lpSrcStr = _str.c_str();int cchSrc = static_cast<int>(_str.size());int cchDest = static_cast<int>(1+_str.size());LPWSTR lpDestStr = new WCHAR[cchDest]{0};LCMapStringW(0x0804,LCMAP_TRADITIONAL_CHINESE,lpSrcStr,cchSrc,lpDestStr,cchDest);wstring str(lpDestStr);delete[] lpDestStr;lpDestStr = nullptr;return str;
}