QTextCodec 类提供文本编码之间的转换。
Qt 使用 Unicode 来存储、绘制和操作字符串。在许多情况下,您可能希望处理使用不同编码的数据。例如,大多数日语文档仍然存储在 Shift-JIS 或 ISO -JP 中,而俄罗斯用户的文档通常存储在 KOl8-R 或 Windows-1251 中。
Qt 提供了一组 QTextCodec 类来帮助在非 Unicode 格式和 Unicode 之间进行转换。您还可以创建自己的编解码器类。
GBK 编解码器提供与中文 GB18030/GBK/GB2312 编码之间的转换。
GBK,正式的中文内码规范,是GB 2312-80 的常用扩展。 Microsoft Windows 在名称代码页 936 下使用它。
GBK 已被新的中国国家标准 GB 18030-2000 取代,该标准增加了 4 字节编码,同时与 GB2312 和 GBK 保持兼容。新的 GB 18030-2000 可以描述为 Unicode 3.x 和 ISO-10646-1 的特殊编码。
m_TextCodec = QTextCodec::codecForName("GB18030");m_btn1.setText(m_TextCodec->toUnicode("按钮1"));m_btn2.setText(m_TextCodec->toUnicode("按钮2"));m_btn3.setText("按钮3");m_btn4.setText("按钮4");QHBoxLayout* hLayout1 = new QHBoxLayout;hLayout1->addWidget(&m_btn1);hLayout1->addWidget(&m_btn2);QHBoxLayout* hLayout2 = new QHBoxLayout;hLayout2->addWidget(&m_btn3);hLayout2->addWidget(&m_btn4);QVBoxLayout* vLayout = new QVBoxLayout;vLayout->addLayout(hLayout1);vLayout->addLayout(hLayout2);setLayout(vLayout);setWindowTitle(m_TextCodec->toUnicode("中文乱码的问题"));
运行效果图:
如果觉得《Qt5解决显示中文的时候出现乱码的问题》对你有帮助,请点赞、收藏,并留下你的观点哦!