Kodolasok a weben

2009-04-07 20:52

A webes vilagban tobb fajta kodolassal talakozik az ember, rakjunk rendet egy picit koztuk!

Az URL kodolasa

Mivel az URL gyakran tartalmaz nem ASCII karaktert, ezert azokat szabalyos ASCII alakra konvertalja. Ezen nem (alphanumerikus es '-_.') karakterek kodolasat onnan lehet felismerni, hogy egy % jelet, 2 Hexadecimalis szam kovet (00-FF). Ezalol egy kivetel van, megpedig a space (%20), melyet az URL + karakterrel helyettesit.
Nade persze ez volt a mult, mivel manapsag UTF-8 a default charset, igy pl az 'á' karakter 2 byte-on tarolodik, ahol az erteket %C3%A1 lesz, %E1 helyett.

<?php
$str = 'Ez itt egy szabályos email cím: "pelda@pelda.hu".';

$encoded = urlencode($str);
$decoded = urldecode($encoded);
echo $encoded;
// Ez+itt+egy+szab%C3%A1lyos+email+c%C3%ADm%3A+%22pelda%40pelda.hu%22.
echo $decoded;
// Ez itt egy szabályos email cím: "pelda@pelda.hu".
?>

HTML entitasok

Egy weblapra a szoveg bevitele meglehetosen egyszeru, csak szimplan be kell gepelni. Azonban egyes karakterek, mint pl a kisebb (<), nagyobb (>) jelek a HTML leiro nyelv reszet kepzik. Ezen karakterek nem jelennek meg (viszont szepen ossze tudjak kuszalni a weblap kinezetet). Emiatt hoztak letre az entitasokat, melyiket onnan lehet felismerni, hogy egy & jellel kezdodnek, ; jellel vegzodnek, es koztuk pedig #szam vagy altalaban rovidites van.

Fenntartott karakterek listaja:

Karakter Leiras Entitas neve Entitas szama
&es&amp;&#38;
"dupla idezojel&quot;&#34;
'szimpla idezojel&apos; (IE nem ismeri)&#039;
<kisebb jel&lt;&#60;
>nagyobb jel&gt;&#32;

<?php
$str = '<strong>ez egy "idezet"</strong>';

$encoded = htmlspecialchars($str, ENT_QUOTES);
$decoded = htmlspecialchars_decode($encoded, ENT_QUOTES);
echo $encoded;
// &lt;strong&gt;ez egy &quot;idezet&quot;&lt;/strong&gt;
echo $decoded;
// <strong>ez egy "idezet"</strong>
?>

--