Search code examples
phpbing-apimicrosoft-translator

How to remove %EF%BB%BF in a PHP string


I am trying to use the Microsoft Bing API.

$data = file_get_contents("http://api.microsofttranslator.com/V2/Ajax.svc/Speak?appId=APPID&text={$text}&language=ja&format=audio/wav");
$data = stripslashes(trim($data));

The data returned has a ' ' character in the first character of the returned string. It is not a space, because I trimed it before returning the data.

The ' ' character turned out to be %EF%BB%BF.

I wonder why this happened, maybe a bug from Microsoft?

How can I remove this %EF%BB%BF in PHP?


Solution

  • You could use substr to only get the rest without the UTF-8 BOM:

    // if it’s binary UTF-8
    $data = substr($data, 3);
    // if it’s percent-encoded UTF-8
    $data = substr($data, 9);