Kom ihåg mig?
Home Menu

Menu


Radbrytningar försvinner med json_decode (php)

Ämnesverktyg Visningsalternativ
Oläst 2011-02-02, 07:11 #1
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
Standard Radbrytningar försvinner med json_decode (php)

Jag använder json_encode för att encoda min data. Får då denna text:

Citat:
[{"test":"Rad.\n\nBrytning"}]
Men när jag använder json_decode så är radbrytningarna inte med. Jag får ut "Rad.Brytning"

Vad gör jag för fel?
radioaktivitet är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-02-02, 09:05 #2
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Kan detta vara relevant för dig?
http://stackoverflow.com/questions/4...wlines-in-json
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-02-02, 10:48 #3
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
Märkligt att inte json_encode() har stöd för att escapa bl.a newline.
eliasson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-02-02, 12:03 #4
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
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.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-02-02, 13:29 #5
Jines avatar
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Feb 2005
Inlägg: 1 032
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
Jines avatar
 
Reg.datum: Feb 2005
Inlägg: 1 032
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";
Jag kan inte återskapa problemet iaf.

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.
Jine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-02-03, 09:53 #6
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
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
eller
Kod:
Rad.

Brytning

Senast redigerad av coredev den 2011-02-03 klockan 15:27
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-02-03, 15:16 #7
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
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.
KarlRoos är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 16:01.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017