• 7152阅读
  • 12回复

[提问]QFile 写入一个中文文件名TXT,显示乱码怎么解决? [复制链接]

上一主题 下一主题
离线200300969
 

只看楼主 倒序阅读 楼主  发表于: 2013-01-11
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
用QFile mypartWfile("D:/曲线数据.txt");


写入该文件,结果电脑里的文件名是乱码,求问如何解决……
离线realfan

只看该作者 1楼 发表于: 2013-01-11
如果是Qt4.X.X,

#include <QTextCodec>
int main()
{
     ....    
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForTr(codec);
    QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
    QTextCodec::setCodecForCStrings(codec);
....
}

QFile mypartWfile(QString("D:/曲线数据.txt"));
离线roywillow

只看该作者 2楼 发表于: 2013-01-11
回 楼主(200300969) 的帖子
不要用中文,我是这么想的
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线200300969

只看该作者 3楼 发表于: 2013-01-11
回 2楼(roywillow) 的帖子
为啥咧……
离线200300969

只看该作者 4楼 发表于: 2013-01-11
回 1楼(realfan) 的帖子
不行啊。。文件名全是框框……
离线roywillow

只看该作者 5楼 发表于: 2013-01-11
回 3楼(200300969) 的帖子
编码问题
牵涉到源码的编码和运行时的编码等等
除非你能搞清楚编码的转换,否则别用那三行,也别在代码中用中文
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线200300969

只看该作者 6楼 发表于: 2013-01-11
回 5楼(roywillow) 的帖子
那非要用中文文件名咋办……
离线realfan

只看该作者 7楼 发表于: 2013-01-11
回 4楼(200300969) 的帖子
你用的什么编译器?如果用MinGW的话,把源代码保存成UTF-8格式,
然后,
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForCStrings(codec);


中文肯定可以
离线realfan

只看该作者 8楼 发表于: 2013-01-11
回 6楼(200300969) 的帖子
也不是说不能用中文,小程序,不涉及多语言切换,用中文也没问题。
离线roywillow

只看该作者 9楼 发表于: 2013-01-11
回 6楼(200300969) 的帖子
使用qt的翻译机制

你要是明确你的源码编码和setCodec的作用那就随你用呗,迷迷糊糊地用很容易出问题
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线呆呆很呆
只看该作者 10楼 发表于: 2013-01-11
回 9楼(roywillow) 的帖子
+1 ts翻译文件
离线jdwx

只看该作者 11楼 发表于: 2013-01-11
Re:回 6楼(200300969) 的帖子
引用第9楼roywillow于2013-01-11 17:24发表的 回 6楼(200300969) 的帖子 :
使用qt的翻译机制
你要是明确你的源码编码和setCodec的作用那就随你用呗,迷迷糊糊地用很容易出问题

Qt的翻译还是挺好用的,codec最好是明白了之后再用。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线XChinux

只看该作者 12楼 发表于: 2013-01-11
对于文件名还是少用中文为好,为可移植性考虑。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个