PHP 에서 string을 외부에서 받아와 json_decode 등을 할 때 아무 이유없이 syntax error를 반환 하는 경우가 있다.

이럴땐 여러가지 의심을 할 수 있는데, 이번 이슈의 경우 Data를 가져온 곳이 web임을 가만했을때 가장 추측할 수 있는 것은 UTF8-BOM이다.
BOM은 (Byte Oder Mark, BOM)으로 UTF-8, UTF-16을 구분하기 위해 윈도우에서 사용된다고 한다.
function removeUtf8Bom(string $string): string
{
return str_replace("\xEF\xBB\xBF", '', $string);
}
이런 경우 간단히 위 함수를 통해 BOM을 제거 할 수 있다.