У меня проблема с получением диакритических символов из строк, закодированных в Base64 под QT. Я создаю строку, тогда я кодирую ее с помощью Base 64, и я сохраняю ее в файл. Затем я хочу декодировать символы из открытого файла. Вот как я это делаю.QT диакритические символы из Base64
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
Пожалуйста, помогите мне, чтобы получить все символы, введенные в начале Спасибо
Если у вас есть проблема с жестко запрограммированной строкой в источнике, вам нужно проверить, какая кодировка используется для сохранения .cpp-файла в вашей IDE. –
Это может быть просто артефакт строковой кодировки в строковом литерале. Вы всегда должны обертывать ваши строковые литералы с помощью [QStringLiteral] (http://doc.qt.io/qt-5/qstring.html#QStringLiteral). – MrEricSir