当前位置: 代码迷 >> QT开发 >> qt 中文文件名乱码有关问题
  详细解决方案

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

热度:71   发布时间:2016-04-25 03:53:56.0
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文件对话框,设置文件名为中文,

由于cvCreateVideoWriter须要的参数是const char *,所以做了一个转换,
转换完成后,file和c_file中文部分都是正常的,

但是保存在硬盘上的中文名是乱码,

求解!
     
qt?中文?乱码

------解决方案--------------------
在main函数里添加

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


注意添加头文件#include <QTextCodec>
  相关解决方案