![]() |
Radbrytningar försvinner med json_decode (php)
Jag använder json_encode för att encoda min data. Får då denna text:
Citat:
Vad gör jag för fel? |
Kan detta vara relevant för dig?
http://stackoverflow.com/questions/4...wlines-in-json |
Märkligt att inte json_encode() har stöd för att escapa bl.a newline.
|
json_encode och json_decode har normalt sett inga problem med radbrytningar. Jag har aldrig upplevt det och använt funktionerna ett oräkneligt antal gånger.
Det allra vanligaste problemet skulle väl vara att man tittar på resultatet som ett html-dokument och därför inte ser radbrytningen om man inte visar källa. Men posta hela din kod så går det kanske lättare att identifiera ditt problem. |
Kod:
<?php OM du däremot behöver ha (i klartext) "\n" i faktiska resultatet, så måste du givetvis escapa dom. Dvs vill ha ut Rad.\n\nBrytning istället för faktiska radbrytningarna. |
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? Kod:
Rad.\n\nBrytning Kod:
Rad. |
Om du förväntar dig att \n skall skrivas ut så kan du pröva att lägga resultatet från json_decode() i <pre>-taggar för att se om det blir radbrytningar.
|
Alla tider är GMT +2. Klockan är nu 23:11. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson