• 7870阅读
  • 9回复

[提问]关于QString转char*的问题(汉字) [复制链接]

上一主题 下一主题
离线gauxten
 

只看楼主 倒序阅读 楼主  发表于: 2011-02-14
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
void QMarkDialog::on_marktree_clicked(QModelIndex index)
{
    QTextCodec* codec = QTextCodec::codecForName("gbk");
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForLocale(codec);
//            QString str = "D:\\mark\\" + index.data().toString() + "\\" + m_sMarkName + ".dat";
           char* p = new char[256];
           QString str = "我是汉字";
            strcpy(p, (const char*)str.toLocal8Bit());
            delete p;
}
如题,转换之后 P是  "?òê?oo×?" 这个东西 上面注释掉的str是一个文件路径,m_sMarkName是qstringlist,如果是注释掉的str转换之后,英文的地方时正常的,而汉字的地方时乱码,小弟已经纠结了,希望高人给予指点

[ 此帖被gauxten在2011-02-14 12:33重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2011-02-14
你的源代码是什么格式的?是GBK格式的吗?
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线gauxten

只看该作者 2楼 发表于: 2011-02-14
回 1楼(XChinux) 的帖子
谢谢版主,怎么看编码格式啊,我用的是creator,因为以前的路径全是英文的,所以从来没改过
离线aesoplord

只看该作者 3楼 发表于: 2011-02-14
版主说的应该是这里吧,Projects->Editor Settings->Default File Encoding
[ 此帖被aesoplord在2011-02-14 14:06重新编辑 ]
离线gauxten

只看该作者 4楼 发表于: 2011-02-14
引用第3楼aesoplord于2011-02-14 14:05发表的 :
版主说的应该是这里吧,Projects->Editor Settings->Default File Encoding

哦看到了 我就是system,我用的系统就是WINXP 简体中文的啊
[ 此帖被gauxten在2011-02-14 14:18重新编辑 ]
离线transformer

只看该作者 5楼 发表于: 2011-02-14
windows下qtcreator对中文支持不好,有时候编译错误信息,显示的是乱码。
[ 此帖被transformer在2011-02-14 16:31重新编辑 ]
离线gauxten

只看该作者 6楼 发表于: 2011-02-14
引用第5楼transformer于2011-02-14 16:30发表的 :
windows下qtcreator对中文支持不好,有时候编译错误信息,显示的是乱码。

要是还转换不了,就得写老长的判断文件名函数了啊,好长啊。。。。。。。
离线gauxten

只看该作者 7楼 发表于: 2011-02-15
谁知道啊
离线XChinux

只看该作者 8楼 发表于: 2011-02-15
QString str = "我是汉字";
            strcpy(p, str.toStdString().c_str());
这样用。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线gauxten

只看该作者 9楼 发表于: 2011-02-15
引用第8楼XChinux于2011-02-15 09:12发表的 :
QString str = "我是汉字";
            strcpy(p, str.toStdString().c_str());
这样用。

谢谢版主,但是还是不行。。。。。。。还是乱码
快速回复
限100 字节
 
上一个 下一个