我遇到了在QT下从Base64编码的字符串中获取变音字符的问题。我正在创建字符串,然后我用Base 64编码它,我将它保存到文件。接下来我想解码打开文件中的字符。我就是这样做的。
void MainWindow::on_treeWidget_2_doubleClicked(const QModelIndex &index){
encode("([ęśćźół35:11");
decode();
}
void MainWindow::encode(QString input){
QString item_to_change = input.toUtf8().toBase64();
QString filename="output.txt";
QFile file( filename );
if ( file.open(QIODevice::ReadWrite) )
{
QTextStream stream( &file );
stream << encoded;
}
}
void MainWindow::decode(){
QFile input("output.txt");
if (input.open(QIODevice::ReadOnly)) {
data_in = input.readAll();
}
QString strRestored(QByteArray::fromBase64(data_in));
qDebug() << strRestored;
}
这样做我只得到了[[esczol35:11而不是[[śśćźół35:11
请帮助我获取开头输入的所有字符。 感谢
答案 0 :(得分:0)
我怀疑问题不在Base64编码/解码中,因为它会准确地返回你每次放入的内容;这就是它的重点。我的信念是你打电话给你的#34;编码&#34;方法是转换字符串文字,或者toUtf8正在正确转换它。使用qDebug打印出每个步骤以查看问题所在,然后您可能需要查看QTextCodec类以正确设置转换。