crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QSettings и кирилица в INI-файле
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Iron Bug Дата 8.2.2010, 7:58
  скорее всего не будет.
QT не юзаю, но тоже тут наелась как-то с этими ini-файлами.
стандартная кодировка в них - ascii, а смещение регулируется локалью. и вот читать их неудобно со всех сторон. так что лучше уж в UTF8 всё хранить, что я обычно и делаю. правда, под вендой стандартные средства типа блокнота всякую чушь иногда лепят в UTF8 и под линюксом надо учитывать, что в начале файла может быть BOM, причём ещё и двух видов, а может и не быть... но всё-таки в общем это лучше, чем ansi с непонятным трактованием.
кодировки - самый жуткий дурдом в программировании, имхо.
DIMEDROLL Дата 6.2.2010, 10:06
 
Цитата(Litkevich Yuriy @ 5.2.2010, 15:34) *
Цитата(DIMEDROLL @ 5.2.2010, 19:13) *
ну как, пробовал менять локаль?
нет, т.к. не вижу ничего хорошего в смене локали внутри приложения. По моему эта возможность в Qt реализована зря.

Я не про это.
Я говорю про смену локализации в твоей ОС: Панель управления - Язык и региональные настройки - Дополнительно - Язык программ не поддерживающих Юникод
измени, например на англ. и проверишь как будет твоя прога работать на английской винде.
Litkevich Yuriy Дата 5.2.2010, 16:34
 
Цитата(DIMEDROLL @ 5.2.2010, 19:13) *
ну как, пробовал менять локаль?
нет, т.к. не вижу ничего хорошего в смене локали внутри приложения. По моему эта возможность в Qt реализована зря.
DIMEDROLL Дата 5.2.2010, 16:13
 
Цитата(DIMEDROLL @ 30.1.2010, 17:12) *
изменив локаль своей системы, вероятнее всего получишь кракозябры...
попробуй, отпишись что получилось

up
ну как, пробовал менять локаль?
какие результаты? интересно же :)
DIMEDROLL Дата 30.1.2010, 18:12
 
Цитата(Litkevich Yuriy @ 30.1.2010, 16:55) *
действительно работает, хотя и непонятно как. LATIN-1 по определению не содержит кирилицы.

достаточно того что LATIN-1 это 8-битовая кодировка, просто ты на нее смотришь через очки 1251 :-)
изменив локаль своей системы, вероятнее всего получишь кракозябры...
попробуй, отпишись что получилось
лучше всего в юникоде писать и читать
Litkevich Yuriy Дата 30.1.2010, 17:55
 
Цитата(DIMEDROLL @ 30.1.2010, 18:16) *
без доп. телодвижений работает
QString::toLatin1()
действительно работает, хотя и непонятно как. LATIN-1 по определению не содержит кирилицы.
DIMEDROLL Дата 30.1.2010, 15:16
  ладно
я сам создал и без доп. телодвижений работает
QString::toLatin1()
Litkevich Yuriy Дата 30.1.2010, 14:08
 
Цитата(BRE @ 30.1.2010, 16:03) *
Юра, а покажи как читаешь значения, точнее во что преобразуешь QVarian

QSettings m("./message.conf", QSettings::IniFormat, this);
...
QString v = m.value(s).toString(); // s - имя ключа
Т.к. надо было срочно сделать пришлось воспользоваться Qt 4.6 и после инициализации QSettings воткнул такую строчку:
m.setIniCodec(QTextCodec::codecForLocale());
Но позже надо будет сделать на Qt 4.4

Цитата(DIMEDROLL @ 30.1.2010, 16:03) *
да, я понял, а файлик почему не приатачил?
а какая от него польза?
вот так он выглядит:
Раскрывающийся текст
[word-0]
0    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N1"
1    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N2"
;2    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N3"
3    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N4"
4    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N5"
5    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N6"
6    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N7"
7    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N8"
8    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N9"
9    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N10"
10    =        "КЗ ЦЕПИ НМР1 И НМР4"
11    =        "КЗ ЦЕПИ SA1 И SA6"
;12    =        ""
;13    =        ""
;14    =        ""
15    =        "ПОHИЖЕHИЕ HАПРЯЖЕHИЯ ПИТАHИЯ 24 ВОЛЬТ"

[word-1]
0    =        "ПОТЕРЯНА СВЯЗЬ С ПЕНОГЕНЕРАТОРНОЙ"
1    =        "УСТАНОВЛЕННА СВЯЗЬ С ПЕНОГЕНЕРАТОРНОЙ"
;2    =        "СБРОС В ИСХОДНОЕ"
;3    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N4"
;4    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N5"
;5    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N6"
;6    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N7"
;7    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N8"
;8    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N9"
;9    =        "КЗ ЦЕПИ ДП СЕКЦИЯ N10"
;10    =        "КЗ ЦЕПИ НМР1 И НМР4"
;11    =        "КЗ ЦЕПИ SA1 И SA6"
;12    =        ""
;13    =        ""
;14    =        ""
;15    =        "ПОHИЖЕHИЕ HАПРЯЖЕHИЯ ПИТАHИЯ 24 ВОЛЬТ"

DIMEDROLL Дата 30.1.2010, 13:03
  да, я понял, а файлик почему не приатачил?
BRE Дата 30.1.2010, 13:03
  Юра, а покажи как читаешь значения, точнее во что преобразуешь QVariant.
Я бы попробовал в QByteArray и дальше через QTextCodec.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 2:07