FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Flitig postare
|
Jag använder json_encode för att encoda min data. Får då denna text:
Citat:
Vad gör jag för fel? |
||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Bara ett inlägg till!
|
Kan detta vara relevant för dig?
http://stackoverflow.com/questions/4...wlines-in-json |
|||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Bara ett inlägg till!
|
Märkligt att inte json_encode() har stöd för att escapa bl.a newline.
|
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Administratör
|
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.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Har WN som tidsfördriv
|
Kod:
<?php $str = "En string med radbrytningar"; echo $str; echo "\n--------------------\n"; $enc = json_encode($str); echo $enc; echo "\n--------------------\n"; echo json_decode($enc); echo "\n--------------------\n"; 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. |
|||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Bara ett inlägg till!
|
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. Brytning Senast redigerad av coredev den 2011-02-03 klockan 15:27 |
|||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Har WN som tidsfördriv
|
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.
|
||
![]() |
![]() |
Svara |
|
|