ugrás a tartalomhoz

Kódlap probléma php + mysql

easyt · 2009. Nov. 22. (V), 21.04
Sziasztok!

Van egy php-bol generalt html oldalam igy:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />

Ha bongeszoben nezem iso-8859-2 encoding-gal, akkor a php-s szovegek helyesen, ekezestesen jelennek meg. Az adatbazisbol szarmazo szovegeknel krix-krax az ekezetek helyen.
Ha a bongeszoben az encoding-ot utf8-ra allitom, akkor az adatbazisos szovegek helyesen jelennek meg, viszont a php-s resz romlik el.

Hogy kellene ezt egyenesbe hozni? Eleg lama vagyok a kodlapos temahoz.
A html-es content type-ot nem szivesen valtoztatnam meg. (sok helyet erint)

MySQL charset: UTF-8 Unicode (utf8)

tabla, oszlop collation: latin2_general_ci

Koszi!
 
1

cikk

gex · 2009. Nov. 22. (V), 21.13
2

ui

easyt · 2009. Nov. 22. (V), 21.14
Elkepzelheto, hogy a tabla tartalma van rosszul felveve (utf8-ban)?
3

Csak UTF-8

Joó Ádám · 2009. Nov. 22. (V), 23.06
Alapvető ökölszabály, hogy minden legyen UTF-8, akkor szinte biztosan megkíméled magad a fejfájástól. És addig térj át, ameddig teheted (ahogy telik az idő a projekt felett, egyre nehezebb lesz).
4

Én is elutasítom a

deejayy · 2009. Nov. 23. (H), 08.28
Én is elutasítom a debuggolást, egyszerűen legyen minden UTF8, és kész.
5

please no utf

easyt · 2009. Nov. 23. (H), 12.20
A minden utf, az nekem most nem szimpatikus megoldas. Nem szivesen konvertalnam a sok html oldalt.
Elvileg a minden iso-s megoldasnak is mennie kellene, nem?

Letezik iso-s tablafeltoltesre vmi tuti modszer, mondjuk phpmysqladmin-on keresztul?
Hogyan ellenorizhetem phpmyadmin-on keresztul, hogy az adataim korrektul latin2-ben vannak?

Tudtok ajanlani vmi tool-t amivel egyszeruen lehet fileokat kodlapok kozott konvertalni? (lehetoleg win platformon)
6

Minden legyen egységes...

whiteman0524 · 2009. Nov. 23. (H), 13.28
...az a titok nyitja :) Mindössze 4 szabályt kell betartani, és lehetőleg ne kössél kompromisszumokat ha azt szeretnéd hogy minden feltétel nélkül rendesen működjön, tehát sehol se legyen baj az ékezetes és egyéb karakterekkel. A "szabályok" :

1. Minden (tehát az összes, kivétel nélkül) php, illetve html, css, vagy javascript fájlod legyen egységesen kódolva ! Azaz minden egyes fájlt ments el a választott karakterkódolással. (Ajánlott az utf-8-at használni)

2. Azokban a fájlokban ahol van HTML vagy valamilyen input-output, ott a fejlécben szintén állítsd be a választott karakterkódolást ! Például legyen ez az utf-8 :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<meta http-equiv="Content-Language" content="hu" />

etc...
3. A MySQL tábláid kivétel nélkül a választott karakterkódolást használják. Tehát az összes létrehozandó tábla alapértelmezett karakterkészlete a példánál maradva legyen UTF-8. (DEFAULT CHARSET=utf8, vagy egységesen is beállíthatod hogy ne kelljen minden egyes táblánál külön-külön belőni)

4. (Ami általában ki szokott maradni és emiatt vannak a hibák) A MySQL és PHP kapcsolata szintén legyen beállítva a választott karakterkódolásnak megfelelően, különben nem lesz jó az egész. Ezt úgy teheted meg hogy a mysql_connect() után egyből elküldöd a következő parancsot : "SET NAMES utf8" - szintén a példánál maradva.

Ha mind a 4 "szabály"-t betartod akkor nem lesz probléma az ékezetes betűkkel :)