gpt4 book ai didi

c++ - QByteArray 到 QBitArray 到 QbyteArray 到 QString + Unicode 字符

转载 作者:行者123 更新时间:2023-11-30 04:10:50 26 4
gpt4 key购买 nike

请帮助进行这些转换。这是输入;

QByteArray byteArr;
QBitArray bitArr;
QFile file(adress);
byteArr.readAll(file);

从字节到位的转换:

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));

从位到字节的转换:

for(int i=0; i<bitArr.count(); ++i)
byteArr[i/8] = (byteArr.at(i/8) | ((bitArr[i]?1:0)<<(i%8)));

并显示结果

ui->textBrowser->setText(QString(byteArr));

此代码与 ASCII 字母完美结合。但是,如果我打开 ANSI 文本的 Unicode 或 UTf-8,则会出现运行时错误或错误输出。请帮忙

最佳答案

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

关于c++ - QByteArray 到 QBitArray 到 QbyteArray 到 QString + Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20445445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com