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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Пеобазование символов  (Прочитано 2555 раз)
voral
Гость
« : Февраль 25, 2011, 03:03 »

Получаю извне xml файл. Некоторые данные набранные на русском приходят в следующем виде:
Цитировать
т е с т  п
Далее все это "заносится" в QStandardItem и отображается через стандартные виджеты.
Есть ли метод/алгоритм для преобразования?
Язык может быть (и даже скорее  всего) может быть другим.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Февраль 25, 2011, 09:07 »

Чем парсите этот xml?
Записан

Qt 5.11/4.8.7 (X11/Win)
voral
Гость
« Ответ #2 : Февраль 25, 2011, 09:54 »

Чем парсите этот xml?
QDomDocument
QDomElement

Для примера
Код:
QDomElement child = domElement.firstChildElement();
QStandardItem *body= new QStandardItem(child.text());

Вообще решили "решить" эту проблему на отправляющей стороне. Но все же хочется найти решение "на всякий случай".
В принципе, как я понимаю, здесь идет код символа, т.е. надо этот код преобазовать в символ. Хотя надо и азобаться с кодовой станицей
« Последнее редактирование: Февраль 25, 2011, 10:01 от voral » Записан
garryHotDog
Гость
« Ответ #3 : Февраль 26, 2011, 20:58 »

Может я что то не так понял, но дело в кодировке файла....тогда попробуйте:
Код
C++ (Qt)
QTextStream Stream(&m_inFile);
Stream.setCodec("Windows-1251");
QString xmlText=Stream.readAll();
 
QString errStr;
int errLine;
int errColumn;
 
//read xml.
if( doc.setContent(xmlText,&errStr,&errLine,&errColumn) )
{
//set root element
root=doc.documentElement();
 
//check root element
if(root.tagName()=="CompilerProSettings")
{
// set result
result=TRUE;
}
else{m_sLastError="The file-config.xml is not a CompilerPro config file.";}
}
 
Записан
voral
Гость
« Ответ #4 : Февраль 28, 2011, 02:27 »

Может я что то не так понял, но дело в кодировке файла....тогда попробуйте:
Да в кодировке. Но не не совсем в этом плане Улыбающийся
Суть такая. Этот xml заполнялся через вебформу. Фишка в том, то в мета тегах была указана кодировка iso-88.... а в системе где эта форма заполнялась UTF8. И уже сам браузер преобразовывал в такой вид символы. В довесок ко всему пи фомиовании xml еще и ампесанд заменялся на & .
В принципе ваш метод можно попробовать вернув обратно амперсанд.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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