Kezdőoldal » Számítástechnika » Weblapkészítés » JavaScriptben mi a különbség...

JavaScriptben mi a különbség a newline (\n) és a carriage return (\r) karakterek között?

Figyelt kérdés

2016. okt. 11. 17:27
 1/7 anonim ***** válasza:
2016. okt. 11. 17:55
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
100%

Az egyik kocsivissza, a másik soremelés. Általában ugyanazt csinálja, de a \n-t érdemes használni.

Kis háttérinfó:

Különböző rendszerek különbözően használják (szabvány szerint) az új sor jelet.

Unix, Linux rendszereken \n (x0A)

Mac rendszerben \r (x0D)

Dos/Windows rendszeren \r\n (x0D0A)

2016. okt. 11. 18:33
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:
H.Tibor87, ebből úgy tűnik, mintha a \r nem csinálna semmit. :)
2016. okt. 12. 08:54
 4/7 anonim ***** válasza:
#3 Nálam (Chrome) meg pont ugyanaz a kettő :)
2016. okt. 12. 10:25
Hasznos számodra ez a válasz?
 5/7 2*Sü ***** válasza:
100%

Kis történelem. A számítástechnika őskorában a kijelző nem feltétlenül monitor volt, lehetett nyomtató is, illetve gyakran a nyomtatók is csak karaktereket tudtak nyomtatni. Itt viszont fontos volt megkülönböztetni két különböző vezérlőkaraktert:

\r (carriage return=kocsi vissza) Ez csak visszaviszi a nyomtatófejet a sor elejére

\n (line feed / new line = soremelés / új sor) Ez csak a papírt mozgatta egy sorral feljebb, de a nyomtatófej ott maradt ahol volt.


Néhány életszerű példa:

print("1234\n5678");

1234

____5678


print("ooo\r”””");

őőő


~ ~ ~ ~ ~ ~ ~


Ha valaki azt akarta, hogy egy szöveg a következő sor elején folytatódjon, akkor kellett küldeni egy kocsi vissza vezérlőkarakter (\r) majd egy soremelés karaktert (\n). A Windows mind a mai napig őrzi ezt, ez az alapértelmezett új sor vezérlőkarakter kombináció. De néhány Windowsos program a linuxos megoldást is használja. Mert a Linuxnál meg egyszerűsítettek a képleten, és elhagyták a \r karakter használatát és a \n jelentését módosították úgy, hogy az egyben soremelés is és kocsi vissza is. Mac esetén meg pont fordítva egyszerűsítettek, ott a \r karaktert hagyták meg.


A probléma az, hogy alkalmasint egy Linuxos szerverre is kerülhet fel Window alatt készült szövegfájl, illetve pl. egy honlap esetén is lehet a kiszolgáló Linux is, Windows is. Ilyen téren a különböző programok máshogy viselkednek:


1. Néhány windowos program csak a \r\n kombinációt tekinti soremelésnek, ha csak árva \r vagy csak árva \n szerepel, akkor azt ignorálja. Ezzel az a gond, hogy egy Linux, vagy Mac alatt keletkezett többsoros fájl Windows alatt egy egysoros fájlnak látszik.

2. Mindkettőt soremelésnek értelmezik. Ezzel az a gond, hogy a Windowsos szimpla soremelésekből (\r\n) dupla soremelés lesz, ami nem jó.

2. A \r karaktert ignorálják, és csak a \n jelöli a soremelést. Ez legtöbbször jó, csak Mac esetén kavar be, mert ott pont a \r jelenti a sortörést.

3. A \r\n kombinációt kicserélik \n-re, majd az árva \r karaktereket is kicserélik \n-re, és a \n jelenti a soremelést. Még ez a legkorrektebb eljárás.

2016. okt. 13. 01:05
Hasznos számodra ez a válasz?
 6/7 2*Sü ***** válasza:
100%
Még annyi, hogy webes környezetben általában elfogadott, hogy a sortörést Linux módon szimpla \n-el jelöljük.
2016. okt. 13. 01:06
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:
köszönöm :)
2016. okt. 14. 08:11

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!