首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

qt 中文文件名乱码有关问题

2013-07-08 
qt 中文文件名乱码问题fileQFileDialog::getSaveFileName(widget,record,untitled, *.avi)QByteAr

qt 中文文件名乱码问题
file=QFileDialog::getSaveFileName(widget,"record","untitled", "*.avi");
QByteArray ba = file.toLocal8Bit();
 c_file = ba.data();
 qDebug() << "file = " << file;
 qDebug() << "c_file = " << c_file;
 video = cvCreateVideoWriter(c_file, CV_FOURCC('M', 'P', '4', '3'), fps,cvSize     
                             (ipImage->width,ipImage->height));
我通过QFileDialog::getSaveFileName文件对话框,设置文件名为中文,
qt 中文文件名乱码有关问题
由于cvCreateVideoWriter须要的参数是const char *,所以做了一个转换,
转换完成后,file和c_file中文部分都是正常的,
qt 中文文件名乱码有关问题
但是保存在硬盘上的中文名是乱码,
qt 中文文件名乱码有关问题
求解!
      qt?中文?乱码
[解决办法]
在main函数里添加


QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));


注意添加头文件#include <QTextCodec>

热点排行