首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QByteArray到QBitArray到QbyteArray到QString + Unicode字符

QByteArray到QBitArray到QbyteArray到QString + Unicode字符
EN

Stack Overflow用户
提问于 2013-12-08 03:14:58
回答 1查看 1.7K关注 0票数 1

请帮助完成这些转换。这是输入;

代码语言:javascript
复制
QByteArray byteArr;
QBitArray bitArr;
QFile file(adress);
byteArr.readAll(file);

字节到位的转换:

代码语言:javascript
复制
BitArr.resize(8*byteArr.count());
for(int i=0; i<byteArr.count(); ++i)
    for(int b=0; b<8; ++b)
        bitArr.setBit(i*8+b, byteArr.at(i)&(1<<b));

位到字节的转换:

代码语言:javascript
复制
for(int i=0; i<bitArr.count(); ++i)
    byteArr[i/8] = (byteArr.at(i/8) | ((bitArr[i]?1:0)<<(i%8)));

并显示结果

代码语言:javascript
复制
ui->textBrowser->setText(QString(byteArr));

此代码可以很好地处理ASCII字母。但如果我打开Unicode或UTf-8的ANSI文本,我有运行时错误或错误的输出。请帮帮忙

EN

回答 1

Stack Overflow用户

发布于 2013-12-08 07:27:12

默认的QString构造函数使用Latin1编码。使用QString::fromUtf8(byteArr)而不是QString(byteArr)。QByteArray和QBitArray之间的转换与此问题无关。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20445445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档