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"));