Запись в файл в utf-8
Нужно сохранить текст QString в файл в кодировке utf-8. Использую метод .toutf8, однако результирующий файл все равно получается в кодировке ascii, и на плеере, куда я загружаю текстовый файл, русские символы отображаются кракозябрами.
Вот все мои действия: я создают плейлист с помощью аимпа, сохраняю его. Насколько я знаю, сохраняется он в кодировке ascii. Далее открываю программу, загружаю этот созданный плейлист. Моя программа заменяет в нем пути к песням с одинх на другие и сохраняет получивший текст в новый файл.
Код
#include <QTextStream> #include <QCheckBox> #include <QString> #include <QMessageBox> using namespace std; QString PathToFile, WhatReplace1, ReplaceFor1, WhatReplace2, ReplaceFor2, SaveAs1, SaveAs2, SaveAs3, TextNotChanged, Result1, Result2; bool CopyPlayer=1; int radiobutton=0; QString MainWindow::FuncReplace(QString TextNotChangedF, QString WhatReplace, QString ReplaceFor) { int i,j, LenTNC, LenWR; LenTNC=TextNotChangedF.size(); LenWR=WhatReplace.size(); QString Result; for(i=0;i<LenTNC;i++) { QString buffer; for(j=i;j<LenWR+i;j++) { buffer.append(TextNotChanged[j]); } if(buffer==WhatReplace) { Result.append(ReplaceFor); i+=LenWR; } Result.append(TextNotChangedF[i]); } return (Result); }
......
void MainWindow::on_pushButtonStart_clicked() //----------START---------- { ..... //Saving //File 1 QFile Save1File(SaveAs1); Save1File.open(QFile::WriteOnly); QTextStream Save1stream(&Save1File); Save1stream<<Result1; Save1File.close(); //File 2 QFile Save2File(SaveAs2); Save2File.open(QFile::WriteOnly); QTextStream Save2stream(&Save2File); Save2stream<<Result2; Save2File.close(); //File 3 (to player) CopyPlayer=ui->checkBox->checkState(); if(CopyPlayer==1) { QFile Save3File(SaveAs3); Save3File.open(QFile::WriteOnly); QTextStream Save3stream(&Save3File); Save3stream<<Result1.toUtf8(); Save3File.close(); } setting(); }
Как можно добиться того, чтобы получаемый файл был в utf-8?
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
AD
- Akiv Doros
- Nov. 11, 2024, 2:58 p.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
m
- molni99
- Oct. 26, 2024, 1:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
m
- molni99
- Oct. 26, 2024, 1:29 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:20points,
- Rating points-10
Last comments
Evgenii LegotckoiOct. 31, 2024, 2:37 p.m.
Fb3 file reader on Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Lesson 064. How to write a Python Markdown extension Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь МаксимовOct. 5, 2024, 7:51 a.m.
QML - Lesson 016. SQLite database and the working with it in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
Now discuss on the forum
Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
Evgenii LegotckoiJune 24, 2024, 3:11 p.m.
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey1Nov. 15, 2024, 6:04 a.m.
NSProjectJune 4, 2022, 3:49 a.m.
IscanderCheOct. 31, 2024, 3:43 p.m.
Добрый день.
Спасибо, получилось. Только еще понадобилось преобразовать строку в QByteArray. Функция теперь выглядит следующим образом:
также "QTextCodec *Codec1251=QTextCodec::codecForName("Windows-1251");" нужно заменить на " QTextCodec *Codec1251=QTextCodec::codecForLocale();", так как кодировка моей системы не Windows-1251, и многая кириллица отображалась некорректно, а какая кодировка используется моей виндой - я не знаю