Qt:TXT文本读写的字符编码

Response返回我是这样写的,一开始写的toLocal8Bit(),在浏览器地址里面输入127.0.0.1:8080,能正常

显示中文,但web处理的时候却乱码了。然后我将toLocal8Bit()修改为toUtf8(),web就能正常处理了

复制代码
void HttpController::service(HttpRequest &request, HttpResponse &response) {

    QFile aFile("xxxxx.txt");

    if(!aFile.exists())
    {
        response.write("File does not exist",false);
    }

    if(!aFile.open(QIODevice::ReadOnly |QIODevice::Text))
    {
        response.write("Pattern exception",false);
    }

    QTextStream aStream(&aFile);
    QString text;
    text = aStream.readAll();
    //QByteArray byte= text.toLocal8Bit();
    QByteArray byte = text.toUtf8();
    response.write(byte,true);
    aFile.close();

}

toUtf8是输出UTF-8编码的字符集

toLatin1是相当与ASCii码不包含中文的遇到中文默认转换为ascii码0x3f也就是字符'?'

Local8bit是本地操作系统设置的字符集编码,一般为GB2312.

相关推荐
wanhengidc5 分钟前
服务器 网络信息安全
运维·服务器·网络
charlie1145141916 分钟前
现代Qt开发——0.1——如何在IDE中配置Qt环境?
开发语言·c++·ide·qt·嵌入式
呆瑜nuage7 分钟前
MySQL数据类型全解析
数据库·mysql
wanhengidc8 分钟前
裸金属服务器都有什么作用
运维·服务器
CHANG_THE_WORLD9 分钟前
演示宽度数组解析
linux·服务器·前端
XDHCOM10 分钟前
NoSQL查询语言问世,CouchDB与SQLite联手革新数据库交互方式,让数据操作更高效
数据库·nosql·couchdb
Dovis(誓平步青云)11 分钟前
《QT学习第二篇:QT的常用控件属性与按钮、view系列、Label、输入框》
开发语言·qt·学习
艾莉丝努力练剑14 分钟前
【Linux系统:多线程】线程概念与控制
linux·运维·服务器·c++·后端·学习·操作系统
黑牛儿14 分钟前
MySQL 实战进阶:从单表优化到分布式数据库适配
数据库·分布式·mysql
momin~15 分钟前
MySQL-part3【数据库约束、表设计】
数据库·mysql