Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запись русских символов, в xml-файл 
:(
    Опции темы
Dronchik
Дата 15.11.2009, 06:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: 0
Всего: 37



Приветствую форумчан) Сейчас работаю над программой, в которой используется запись и чтение xml-файла. Для записи и чтения xml-файла используется функции игрового движка Irrlicht(IrrXML называется, как ни странно). Проблема заключается в том, что IrrXML не записывает в xml-файл русские буквы(вместо них квадраты при открытии этого файла в блокноте). С английскими буквами, цифрами всё в порядке - и пишется, и читается файл стабильно. Есть подозрение, что придётся транслитерировать русские буквы в английские аналоги и при чтении файла проводить обратную операцию. Есть ли более оптимальный способ? 
Код

core::array<core::stringw> names=0;
core::array<core::stringw> values=0;
//...
for(int i=0; Task[i].bFull!=false; i++)
        {
            names.push_back(core::stringw(L"Name"));        
            values.push_back(core::stringw(Task[i].strName));//Task[i].strName может содержать как английские буквы, так и русские
                //...
                        buffer=_itow(i, buffer2, 10);
                        //параметры функции writeElement: название поля в xml-файле, пустое ли поле, название параметра, его значение
            xml->writeElement(buffer, false, names, values);                        
            xml->writeClosingTag(buffer); 
            xml->writeLineBreak();
            names.clear();
            values.clear();
        }

Информация по IrrXML(Офф сайт).


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
Andrey44
Дата 16.11.2009, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Кодировка самого xml-файла какая?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
mrbrooks
Дата 16.11.2009, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



вдогонку скажу что первой строкой для отображения русского текста д.б. типа этого:

Цитата

<?xml version="1.0" encoding="UTF-8" ?> 

то бишь наш любимый юникод.

Цитата(Dronchik @  15.11.2009,  06:37 Найти цитируемый пост)
Для записи и чтения xml-файла используется функции игрового движка Irrlicht(IrrXML называется, как ни странно). 

Это сущая необходимость, или есть возможность использовать более известные врапперы?
PM MAIL   Вверх
Dronchik
Дата 16.11.2009, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: 0
Всего: 37



Andrey44, кодировка UTF-16.
mrbrooks, нет, такой необходимости нет. Я чисто по привычке использования этого враппера его и взял, даже не задумываясь о других врапперах, так как этот меня вполне устраивал до обнаружения этой проблемы. Пойду гуглить насчёт других xml-врапперов. Конечно, если вас не затруднит, могли бы посоветовать какой-либо из известных, так как ни с какими более, кроме IrrXML, я не знаком вообще.


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
xvr
Дата 16.11.2009, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Какой тип у Task[i].strName?
PM MAIL   Вверх
Dronchik
Дата 16.11.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: 0
Всего: 37



xvr, массив переменных типа char 
Код

char strName[100];



--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
xvr
Дата 16.11.2009, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(Dronchik @ 16.11.2009,  17:41)
xvr, массив переменных типа char 
Код

char strName[100];

Тогда надо смотреть на конструктор core::stringw(char*), в частости на то, где (и как) ему надо выставить локаль для символов.
Ну и поставить там эту самую локаль (в CP1251)

PM MAIL   Вверх
GremlinProg
Дата 18.11.2009, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 3
Всего: 106




M
GremlinProg
Тема перемещена из раздела C/C++: Системное программирование и WinAPI



--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0722 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.