Det står inte rätt ut i json-specen att json hanterar just radbrytningar (t.ex. Line feed 0x0A + Carriage return 0x0D) i strängar, men generellt så skall alla unicode-tecken bevaras korrekt. Kontrolltecken skall dock escapas och det bör PHP självt fixa i sin implementation.
http://www.ietf.org/rfc/rfc4627.txt?number=4627
Kan testas rätt enkelt genom att splitta strängen och sedan skriva ut varje teckenvärde för sig - innan och efter json encode / decode.
Hur förväntade du dig att resultatet skulle se ut?
eller