• 4623阅读
  • 2回复

请教一个 LineEdit 转换字符的问题 [复制链接]

上一主题 下一主题
离线okk12345
 
只看楼主 倒序阅读 楼主  发表于: 2008-11-12
— 本帖被 XChinux 执行加亮操作(2009-01-06) —
std::string  ContactDialog::getContactNameText()
{
    return ui.contactNameEdit->text().toStdString();
    /*
                    QString string = ui.contactNameEdit->text();
    QTextCodec *codec = QTextCodec::codecForName("GB2312");
    QCString chinese_string=codec->fromUnicode(string);
                  return chinese_string;  */
}


void  MainWindow::addContact(Contact* contact)
{
        ListWidgetItem* listWidgetItem = new ListWidgetItem(contactsList, 1001, contact->getObjectId());
      QString contactName(contact->contactName.data());
           /*
        QTextCodec *codec = QTextCodec::codecForName("GB2312");
        QString unicodeString = codec->toUnicode(contactName);
        listWidgetItem->setText(unicodeString);
          */
        listWidgetItem->setText(contactName);
        contactsList->addItem(listWidgetItem);
        delete contact;
        contact = NULL;
}


我把从LineEdit里面输入的汉字存入sqlite3里,再把它取出来在listWidgetItem里面显示,怎么还是??,困扰我好久了,希望有人能帮我解答,谢谢!(程序别的没有错误,只是字符编码问题,改为注销掉的内容就会出现错误,什么char。。。。)
离线vrcats
只看该作者 1楼 发表于: 2008-11-12
contact->contactName到底是个什么类型?你不应当把它转换成QString再转Unicode,而是应该直接处理char*或者QByteArray。请带上跟踪结果,把每一步的关键对象的值和类型标记出来,否则很难帮你看。
离线sundp

只看该作者 2楼 发表于: 2008-11-12
去看看我的Blog,也许对你有点帮助。
http://sundp.blog.sohu.com/
Linux之路-8那篇。
人境结庐<http://sundp70.blog.163.com>心远地偏
快速回复
限100 字节
 
上一个 下一个