php中的mp3 id3tag编码

Posted

技术标签:

【中文标题】php中的mp3 id3tag编码【英文标题】:mp3 id3tag encoding in php 【发布时间】:2017-05-20 08:09:14 【问题描述】:

首先我是韩国人,当我从 mp3 文件中提取数据时。韩文字符出现为奇怪的字符..它在英语中叫什么?断字现象? 无论如何,有些音乐文件是 mp3 类型的,我做了它来提取 mp3 信息。 (标题,歌词,艺术家,专辑,图片) 我的问题是某些文件可以正常输出,根本没有损坏。 但有些文件输出不正确。你知道什么是有趣的歌词正确地出来了,但不是标题,艺术家的名字,用韩语写的专辑。歌词也是韩文。 所以我将一个正确输出的文件与另一个有趣的文件进行了比较。 编码彼此不同,所以我将其更改为与正确输出的相同。 它没有用。我该怎么做,有什么问题..如果有人知道吗? 我尝试了 UTF-8 、 UTF-16 、 EUC-KR 等等。这是编码的问题吗?

【问题讨论】:

如何从 MP3 中提取数据?如果您使用的是 shell 命令,请确保它以与脚本相同的编码输出数据。输出是什么样的?如果脚本是 UTF-8 并且您正在使用返回另一个字符集的 shell 命令,您可以使用 utf8_encode() 将其转换为 UTF-8 【参考方案1】:

您可以使用http://www.getid3.org/ 示例:http://www.getid3.org/demo/MPEG.mp3.html 从服务器站点上的环境开始分析

然后您就有机会进行转换,例如使用 php 的 mbsting 函数。

【讨论】:

【参考方案2】:

韩语:

$url = "music/악동뮤지션(AKMU) - DINOSAUR.mp3";    
$tag = id3_get_tag($url);
echo iconv("EUC-KR","UTF-8", $tag['artist']).' - '.iconv("EUC-KR","UTF-8", $tag['title']);

结果:악동뮤지션(AKMU) - 恐龙

英语:

$url = "music/Ed Sheeran - Shape Of You.mp3";    
$tag = id3_get_tag($url);
echo iconv("UTF-16LE","UTF-8", $tag['artist']).' - '.iconv("UTF-16LE","UTF-8", $tag['title']);

结果:Ed Sheeran - 你的形状

【讨论】:

以上是关于php中的mp3 id3tag编码的主要内容,如果未能解决你的问题,请参考以下文章

java id3tag重复的mp3文件

如何将音频文件转为base64 编码

如何获取特定 URL 中音频文件的 ID3Tags 信息?

PHP - 将 .wav 文件转换为 .mp3?

浅谈如何使用代码为MP3文件写入ID3Tags

浅谈如何使用代码为MP3文件写入ID3Tags