Kezdőoldal » Számítástechnika » Weblapkészítés » A weboldalam nem kezeli az ő...

A weboldalam nem kezeli az ő ű karaktereket mi a megoldás?

Figyelt kérdés
webspell alapú a web .!! nem reklámozom de ha segít www.darke.tk !!

2012. febr. 20. 17:43
1 2
 11/12 A kérdező kommentje:
notepad++
2012. febr. 21. 08:29
 12/12 2xSü ***** válasza:

No, akkor könnyű a dolog. Mivel a HTML fejlécben UTF-8 formátumot adtál meg, így UTF-8-nak próbálja értelmezni a tartalmat a böngésző.


Ilyen esetben a forrásfájloknak is UTF-8 formátumban kell lenniük.


Notepad++ esetén a Kódolás menü alatt tudod beállítani az UTF-8 formátumot (BOM nélkül). Már meglévő szöveget is át tudsz konvertálni ugyanitt: Átalakítás UTF-8 kódolásra BOM nélkül.


* * *


Kis háttéranyag:

Sok eszköz – főleg a számítógépek, de nem csak azok – a szöveges információt digitális formában, lerövidítve tárolják, továbbítják. Egy nem számítástechnikából vett ilyen kódrendszer pl. a morze kód vagy a Braille-írás.


Tehát a karakterek helyett egy számot tárolunk, ami meghatározza, hogy a karaktertáblázat hányadik elemét reprezentálja az adott szám. Ilyen táblázatot ugye nem triviális készíteni, nagyon sok féle karaktertáblázatot lehetnek kreálni. Persze vannak evidens elvek, de vannak kevésbé azok.


Az informatikában is sokféle karaktertábla született. Voltak 7 bites és 8 bites táblázatok, amelyek 128 illetve 256 különféle karakter leírását tették lehetővé. Persze próbálták megszüntetni a káoszt és valamilyen módon szabványosítani ezeket a táblázatokat, hogy a különböző rendszerek tudjanak egymással kommunikálni.


A legismertebb ilyen szabvány az ASCII, amely csak 0-127-ig határozza meg a karaktertáblát. De említhetnénk az EBCDIC-et is pl.


A lényeg, hogy az ASCII lett a mai karaktertáblázatok jó részének kiinduló alapja. Számos szabvány született, ami az ASCII által nem pontosított, de 8 bites rendszereken használható értékekhez (128-255) rendel hozzá karaktereket.


Mivel 256 különböző karakter nem elég az összes létező nyelv összes karakterének leírására, így jöttek létre a különböző kódtáblák. Viszont itt is különböző irányzatok jelentek meg. Gyakorlatilag ahány oprendszer, ahány platform, mind más és más megoldás született. Más volt DOS alatt, más Mac alatt, más Windows alatt…


Ez már egy adott nyelv esetén – a fent leírt káosz ellenére – megoldotta a problémát. Elég volt meghatározni, hogy az adott szöveg milyen kódtáblával értelmezendő, és máris lehetőség volt akár az orosz, akár a görög, akár más nyelvek karaktereinek ábrázolására.


Viszont nem oldotta meg azt a problémát, hogy egy adott szövegen belül különböző nyelvek karakterei szerepeljenek. Pl. orosz-magyar szótár.


---


A megoldás az Unicode rendszer megalkotása volt. Ennek segítségével bármilyen nyelv bármilyen karakterét le lehet írni, ráadásul szándékoltan egy közös szabvány, így nem születnek konkurenciái. Az Unicode a karaktereket 4 bájton ábrázolja, ami elméleti szinten 4 milliárd különböző karakter leírására elengendő, ami több, mint amire valójában szükség van. (Ebből alig százezret használunk ténylegesen. 4 milliárd karakterbe simán belefér az összes mai és ősi kínai, japán karakter, egyiptomi hieroglifa, még az ősmagyar rovásírás is.)


Csakhogy ez egyrészt elég nagy helypazarlás, másrészt nem kompatibilis a meglévő kódolásokkal. A tömörebb, a régi kódolásokkal legalább részben, de az 7 bites ASCII kódolással teljes egészben kompatibilis megoldás az UTF-8, amely az első 128 karaktert az ASCII-nek megfelelően tárolja. A magasabb kódú karakterek első bitje 1-es, amiből eldönthető, hogy az adott karaktert hány bájt írja le. Lásd: [link]

Mivel a karaterek többsége ábrázolható egy bájton, a maradék meg általában maximum 2 bájtot foglalnak, így ez a kompatibilitás mellet nagyon jó tömörítési forma is.


Persze hogy ne legyen egyszerű, a Windows bevezetett egy un. BOM-ot (Byte Order Mark). Ehhez azt kell tudni, hogy egy 2 bájtos egész számot több módon tárolhat a számítógép. Ez processzorfüggő dolog és van is értelme mindegyiknek. A sorrend lehet 12 vagy 21. Sőt a két bájtos számpárok sorrendje is lehet eltérő. Nos erre való a BOM, hogy jelezze a rendszernek, hogy hogyna értelmezze a bájtsorozatokat. (Ami szerintem egyébként netto hülyeség, semmi szükség nem volt rá, max. némi munkát spórolt néhány lusta programozónak, illetve a szükséges bájtcserélés hiánya miatt esetleg némi processzoridőt lehetett ezzel megtakarítani. Az előny viszont kisebb, mint az a káosz, amit ez az eljárás okoz. Pl. megtöri a ASCII kompatibilitást, vagy többek között PHP esetén okoz gondokat.


* * *


Mára az UTF-8 minden rendszeren támogatott. Érdemes ezt használni, hacsak valami nem indokol mást. Netes környezetben tessé elfelejteni a BOM-ot.

2012. febr. 21. 14:55
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!