LINUX.ORG.RU

QT и надписи на русском языке, как?


0

0

общем у меня в бд находятся некие надписи на русском языке в некой кодировке (ср1251 щас но вообще может и поменяться)

При попытках вставить их напрямую получаются пустые лабели. Я так понимаю их нужно перекодировать. Как? Как при этом учесть системную кодировку, она ведь может быть у разных пользователей разной.

В какой кодировке лучше хранить записи в бд?


Ответ на: комментарий от Spicinpv

я правильно понял, что лучше в базе все хранить в юникоде, а потом переворачивать его согласно системной кодировке?

StDog
() автор топика

QTextCodec *codec = QTextCodec::codecForName("KOI8-R");
QString msg = QString (codec->toUnicode ("текст"));

Tsahes
()

Хранить, наверное, в той, в какой надо. Если записи только с русским/латинским текстом, то зачем уникод?
А переводить...если есть строка char *str как уже сказали
QString qstr = QString::fromLocal8Bit(str) - для кодировки локали
Для любых кодировок:
QTextCodec *codec = QTextCodec::codecForName("твоя кодировка");
QString qstr = codec->toUnicode(str);

anonymous
()
Ответ на: комментарий от StDog

еще...
юникод юникодом, но он ведь тоже кодируется по-всякому (UTF-8, UTF-16 и т.д.)
Qt с версии 2 внутренне работает в юникоде. Так что локаль тут не важна.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.