我正在尝试批量阅读ID3数据.在某些曲目上,ÿþ出现.我可以删除前两个字符,但这会伤害没有它的曲目.
这就是我目前拥有的:
$trackartist=str_replace("\0", "", $trackartist1);
任何建议都会很棒,谢谢!
ÿþ是UTF-8中的0xfffe; 这是UTF-16中的字节顺序标记.您可以使用iconv或将您的字符串转换为UTF-8 mb_convert_encoding():
$trackartist1 = iconv('UTF-16LE', 'UTF-8', $trackartist1);
# Same as above, but different extension
$trackartist1 = mb_convert_encoding($trackartist1, 'UTF-16LE', 'UTF-8');
# str_replace() should now work
$trackartist1 = str_replace('ÿþ', '', $trackartist1);
假设$trackartist1始终为UTF-16LE; 检查ID3标签库的文档,了解如何获取标签的编码,因为对于不同的文件可能会有所不同.您通常希望将所有内容转换为UTF-8,因为这是PHP默认使用的内容.