作者:cathy522_788 | 来源:互联网 | 2023-09-24 15:49
我正在尝试批量阅读ID3数据.在某些曲目上,ÿþ出现.我可以删除前两个字符,但这会伤害没有它的曲目.
这就是我目前拥有的:
$trackartist=str_replace("\0", "", $trackartist1);
任何建议都会很棒,谢谢!
解决方法:
ÿþ是UTF-8中的0xfffe;这是UTF-16中的byte order mark.
您可以使用iconv或mb_convert_encoding()将字符串转换为UTF-8:
$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('?t', '', $trackartist1);
假设$trackartist1始终为UTF-16LE;检查ID3标签库的文档,了解如何获取标签的编码,因为对于不同的文件可能会有所不同.您通常希望将所有内容转换为UTF-8,因为这是PHP默认使用的内容.