Lv.的博客

Qt中文编码和QString类Unicode编码转换

 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/g423tgl234/article/details/52222569
1 window中文GBK编码和Unicode编码转换

//GBK‐> QString
QString str = QString::fromLocal8Bit("新浪微博");
 
//QString ‐> GBK
QString text = ui.lineEdit‐>text();
QByteArray bytes = text.toLocal8Bit();
const char* gbk = bytes.data();
2 Linux中文中文编码和Unicode编码转换

UTF‐8‐> QString :
char utf8[] = {0xE4 ,0xBD, 0xA0, 0xE5, 0xA5, 0xBD, 0};  
QString str2 = QString::fromUtf8(utf8);
 
QString ‐> UTF‐8:
QString text = ui.lineEdit‐>text();
QByteArray bytes = text.toUtf8();
const char* utf8 = bytes.data();
int size = bytes.size();
 
3 使用QTextCodec类实现编码<pre name="code" class="cpp">// QString(Unicode) ‐> std::string (GBK)
static string FromUnicode(const QString& qstr)
{
QTextCodec* pCodec = QTextCodec::codecForName("gb2312");
if(!pCodec) return "";
QByteArray arr = pCodec‐>fromUnicode(qstr);
string cstr = arr.data();
return cstr;
}
// std::string (GBK) ‐> QString(Unicode)
static QString ToUnicode(const string& cstr)
{
QTextCodec* pCodec = QTextCodec::codecForName("gb2312");
if(!pCodec) return "";
QString qstr = pCodec‐>toUnicode(cstr.c_str(), cstr.length());
return qstr;
}

 

posted @   Avatarx  阅读(6131)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2018-11-08 Matlab - Matlab 2016a 安装破解教程
2017-11-08 SQLite3 安装、基本操作
点击右上角即可分享
微信分享提示