Sei sicuro che non ci siano di mezzo problemi di charset?

Per quanto riguarda il tuo controllo, io lo cambierei con

if(function_exists('json_encode'))

perchè comunque json è un'estensione che può essere abilitata oppure no, quindi nel caso di versioni di php 5.2 in cui è stata disabilitata otterresti un errore (lo so, è una pignoleria, però è più corretto).