QT读取mp3的lrc歌词文件不乱码的解决方法

       我们用Qt来实现音乐播放器时,一个关键的问题是如何用QString来存放 (*.lrc)文件中的中文或其他国家语言的歌词。

       首先我们得了解Qt的内部编码格式以及Windows下lrc文件的编码格式,这样我们才能采取正确的方式获取不乱码的歌词。


     Qt的默认编码格式:  Unicode

     Windows的默认编码格式: GBK


读取lrc歌词文件的方式:  采用文本流的方式读取

/* 文本流读取 */
QFile lrc_file(/*歌词文件路径*/);
if (!lrc_file.open(QIODevice::ReadOnly | QIODevice::Text))
{
    ui->music_lrc_label->setText("打开歌词文件失败");
    return ;
}
//****这种方式读取中文不乱码
QTextStream in(&lrc_file);
QString all_lrc=in.readAll();
lrc_file.close();

在Windows下中文GBK编码与Unicode编码相互转换

/* GBK 转换到 QString */
QString str = QString::fromLocal18Bit("这里是中文");
/* QString 转换到 GBK */
QString str = ui.my_lineEdit->text(); //从输入框内获取中文文本
//转换,共两步
QByteArray bytes = str.toLocal18Bit();
char* gbk_str = bytes.data();

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值