minidlna 中文显示乱码

minidlna在解析包含中文的音频文件tag信息时出现乱码。问题源于编码方式不匹配,中文通常采用GB232编码,而_minidlna需要通过iconv转换为UTF-8。要解决此问题,需要启用HAVE_ICONV_H,并使用libiconv库进行转换。详细步骤包括编译libiconv静态库,将库文件拷贝到minidlna相应目录,并在Makefile中添加链接libiconv。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

minidlna 解析音频文件的tag信息,

在win7 mediaplayer中看到解析出来文件信息为乱码


原因在于: 中文的编码方式为GB232,

_get_mp3tags 获取tag信息时需要通过iconv进行编码方式转换为UTF-8

注意:

minidlna中需要enable HAVE_ICONV_H

通过调用库libiconv来进行转换


库libiconv不在minidlna目录下的时候:

在lib目录下(libiconv-1.14/lib)

1)通过ar crv text.a text.o命令编译生成静态链接库*.a文件

../../../toolchain/rsdk-1.5.5-5281-EB-2.6.30-0.9.30.3-110714/bin/rsdk-linux-ar crv libiconv.a *.o

2)将.a 和.la文件拷到minidlna对应目录下(通过查看makefile的lib目录确定)

cp libiconv.a ../../minidlna/tmp/lib/

cp libiconv.la ../../minidlna/tmp/lib/

3)在Makefile LIBS =。。。中加入

LIBS =-lsqlite3  -lpthread -lavformat -lavcodec -lavutil -liconv -lid3tag -ldl -lm -lz


FYI:

[1]Linux .a文件.o文件.la文件.lo文件和.so文件

http://kmoving.blog.163.com/blog/static/205049197201259102538782/


[2] gcc命令生成静态链接库的方法

1、用gcc的-c选项生成.o文件,如
gcc -c test1.c test2.c test3.c
编译后会生成test1.o test2.o test3.o三个目标文件。
2、然后用ar命令生成.a文件,如
ar crv test.a test1.o test2.o test3.o


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值