Russian Qt Forum
Ноябрь 23, 2024, 08:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Чтение-запись файлов в кодировке UTF-8 при локале KOI-8R.  (Прочитано 8956 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Июль 16, 2008, 14:51 »

Здравствуйте!


Давайте разберемся с кодировками. Ситуация сейчас такая. Имею систему с локалью KOI-8R. Имею HTML файлы в кодировке UTF-8 (в них нигде charset не прописан, просто файлы с HTML разметкой в кодировке UTF-8).

Открываю файл через команды

Код:
QFile f(fullfilename); // Где fullfilename - полный путь к файлу
edittextarea->setHtml( QString::fromUtf8(f.readAll()) ); // Где edittextarea - объект класса QTextEdit

После редактирования сохраняю текст в файл командами

Код:
QTextStream out(&fullfilename);
QString content=edittextarea->toHtml();
out << content.toUtf8();

И получаю файл с битой кодировкой, в котором вместо русских букв пробелы (0x20), иногда какие-то коды типа 0x9C, 0x9D...

А если не давать команду конвертации при сохранении, например так

Код:
out << content;

То тогда сохраненный файл получается в системной кодировке KOI-8R, а нужно чтоб он был в той же UTF-8.


Вопрос - как в QT4 считывать и записывать файлы в нужной кодировке UTF-8, если кодировка локали отличается от UTF-8?
Записан

Собираю информацию по крупицам
http://webhamster.ru
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июль 16, 2008, 15:10 »

QTextStream FileStream(&file);
FileStream.setCodec("UTF8"); (может UTF-8, точно не помню)
Перекодировки не нужно, все само сделается.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #2 : Июль 16, 2008, 21:10 »

Спасибо, заработало.
Записан

Собираю информацию по крупицам
http://webhamster.ru
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.087 секунд. Запросов: 22.