Kezdőoldal » Számítástechnika » Programozás » Ékezetes karakterek nem...

Mpxr kérdése:

Ékezetes karakterek nem jelennek meg a PHP oldalon (MYSQL-ből jönnek az adatok). "? " Jelenik meg az ékezetes betűk helyett.

Figyelt kérdés

Van egy php oldalam, ahol alapvetően megjelennek jól a karakterek, viszont, hogy ha adatbázisból akarok megjeleníteni szöveget akkor az ékezetes karakter helyett kérdőjel jelenik meg.

Rögtön a a fájl második sorába be van szúrva, hogy: header('Content-type: text/html; charset=utf-8');

Illetve a HTML részben pedig a <meta http-equiv="Content-type" content="text/html; charset=utf-8" />. Az adatbázi-ban pedig a karakterkódolást próbáltam már utf8_unicode_ci -al és utf8_hungarian_ci -al és egyik sem nyerő.


Érdekesség, hogyha a fájl első sorában azt írom be hogy header('Content-type: text/html; charset=iso-8859-2'); akkor a dinamikus szöveg ami az adatbázisból jön jól jelenik meg, viszont a statikus szöveg (menüsor, footer) ami eredetileg jó volt az most rossz lett.


Köszönöm a segítséget.



2014. febr. 1. 13:56
1 2
 1/11 anonim ***** válasza:
Html-be: <meta charset="utf-8"> esetleg.
2014. febr. 1. 14:11
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:
Sajnos úgy sem sikerült.
2014. febr. 1. 14:19
 3/11 anonim ***** válasza:
Akkor az adatbázisod a tré.
2014. febr. 1. 14:29
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:

phpmyadmin-ban az Oprations alatt a Collation be van állítva utf8_hungarian_ci-re (próbáltam már mást is). Illetve magában a táblázatban is minden egyes mező Collation értéke utf8_hungarian_ci (próbáltam már itt is mást, pl. utf8_unicode_ci)

Van még valami más beállítási lehetőség?

2014. febr. 1. 14:35
 5/11 anonim ***** válasza:
lehet hogy a php vagy a html mentésénél nem uft-8-ba lett mentve
2014. febr. 1. 15:15
Hasznos számodra ez a válasz?
 6/11 A kérdező kommentje:
Notepad++ -ban beállítottam a kódolást UTF-8-ra. Próbáltam BOM nélkül is és úgy sem sikerült. Szóval szerintem a kódolásnak is jónak kell lennie.
2014. febr. 1. 15:43
 7/11 anonim ***** válasza:
a php headerbe is add meg az utf-8 at.
2014. febr. 1. 15:46
Hasznos számodra ez a válasz?
 8/11 A kérdező kommentje:
Ha erre gondolsz ezt megadtam, rögtön a fájl elején php tagek között.: header('Content-type: text/html; charset=utf-8');
2014. febr. 1. 15:51
 9/11 Drone007 ***** válasza:

Ha egy létező adatbázisban átállítod az alap karakterkódolást, az még nem old meg semmit. Ha a táblák szöveges celláinak kódolása már fixen latin-1, akkor azokat is át kell állítani, illetve a tárolt adatokat is úgy kell felvinni, hogy azok utf8-ként kerüljenek be.

Célszerű ezt úgy megoldani, hogy hozzáadsz egy utf8 as mezőt a táblához, majd php-val régi rendszer szerint kiolvasod a régi mező adatát, és utf8-ként beírod az új cellába.

A harmadik megoldás, hogy újragenerálod a teljes adatbázist, immár utf8 alapokkal (ez a tisztább). Kövesd ezeket az instrukciókat:

[link]

2014. febr. 2. 07:17
Hasznos számodra ez a válasz?
 10/11 Drone007 ***** válasza:

Ja igen: a második megoldás, hogy sok convert to charset utasítást nyomsz ki mysql-ben valahogy így:

ALTER TABLE `t1` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

meg

ALTER TABLE `t1` DEFAULT CHARSET=utf8, MODIFY COLUMN `c1` text CHARACTER SET utf8;

:)

2014. febr. 2. 07:20
Hasznos számodra ez a válasz?
1 2

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!