ugrás a tartalomhoz

Karakterkódolás új fájlnál

lacy · 2007. Május. 17. (Cs), 19.44
Üdv!

Van egy scriptem, lementi a sql adatbázist egy php fájlba, amit megnyitva képes visszatölteni a kiszolgálóra egy esetleges adatvesztésnél az adatokat. A gond ott van, hogy nem megfelelő a fájl karakterkódolása amit létrehoz, így a visszatöltés nem megy. Ha megnézem dreamweaverben látszik, hogy nyugat európai. ha átállítom közep európai isora, akkor már megy a visszatöltés, csak épp a hosszú ő ű betűkből az ékezet nélküli másukat illeszti a táblákba. Látszik is ha mellé írok egy ő betűt az nem olyan mint ami eredetileg benne volt:S

Szóval, hogy lehet egy fopen() vagy touch() által létrehozott fájlnál a karakterkódolást is megadni?

Köszönöm!
ui: feltöltésnél használja a SET names latin2 queryt.
 
1

PPicit pontosabban

vbence · 2007. Május. 17. (Cs), 20.21
Shellscriptről van szó? Elvileg, ha binárisan ugyanazt adod vissza neki, amit kiadott, akkor nem lehet baj.

Milyen elemekből áll a rendzser, min megy át az adat?

Egy mysqldump adatbazis >xy.txt és mysql adatbazis <xy.txt páros jól kell hogy működjön.
2

nem nem

lacy · 2007. Május. 18. (P), 14.59
Szia!

Semmilyen mysqldump-ot nem használok. Van egy php script, ami lekéri az összes adatot az adatbázisból és létrehoz egy php fájl amibe mysql_query sorokkal beleilleszti, hogy ha utána futtatom visszatöltse.

Ez azért van, mert nem működik a kiszolgáló adatbázismentő oldala:S

köszi
3

És...

vbence · 2007. Május. 18. (P), 15.31
Mit látsz az ékezetes karakterek helyett? Milyen lesz a fájl kódolása? Alapból milyen a szerver kódolása?
4

háátt.

lacy · 2007. Május. 18. (P), 20.13
látom az összes ékezetes karaktert, de a kódolás nyugat európain van. ha így megpróbálom futtatni a szerver feltöltésnél hibát dob. ha átállítom a php fájl kódolását közép európai isora akkor már feltölti rendesen az adatokat de az ő és ű helyett o és u lesz. lehet az új dreamweaver cs3 hibásan alakítja át a karaktereket? mert ha a középeurópai kódolásra állított php fájlban az ő karakter mellé egy saját ő betűt írok, annak ékezete nem pontosan olyan.

jajj viszont most jutott vmi eszembe!!! a szerver alapértelmezett kódolása azt hiszem nincs beállítva, valószínűleg ez lesz a baj..mert frissen telepítettem és még nem konfigoltam...hmm..ez lesz a baj!!! na majd jelentkezem ha nem!!!
kösziiiiii
5

kalapos ő

gex · 2007. Május. 18. (P), 22.26
ha a középeurópai kódolásra állított php fájlban az ő karakter mellé egy saját ő betűt írok, annak ékezete nem pontosan olyan


latin1-ben õ-nek néz ki az ő betű...

szerk: ez így nem igaz, latin1-ben nincs hosszú ékezetes ő betű, csak kalapos õ. a kettő nem ugyanaz.
6

Fura

vbence · 2007. Május. 19. (Szo), 12.15
Érdekes ez a kódolás dolog. Nálam aranyszabály, hogy "ne csinálj semit" és eddig minden működött.

A latin1 és a latin2 szintén 8 bites kódolások, tehát a legtöbb karakter megfelel. A latin1-ben kalapos õ és û az latin2-ben a magyar ő és ű. Tehát TELJESEN MINDEGY a fájlod kódolása. Ha binárisan ugyanazokat az értékeket adod vissza a querynek, amiket kaptál, akkor annak mennie kell.

A szerver nyugodtan működhet latin1-ben is. Ha az oldaladban ott van metában vagy http fejlécben az iso8859-2, akkor a böngésző magyar ékezetekkel fogja megjeleníteni.

A PHP forrásod kódolása akkor számít, ha te magad is szeretnél ékezetes karakter konstansokat adni a fájlhoz. Mondjuk kommenteket (pl: Itt kezdődik az xy tábla).

Ha gondolod, olvasgathatod ezt a mysql karakter kódolásról, de szerintem fölösleges. Ha végig latin1-el dolgozol, akkor ami kijön az vissza is megy. És pont. A problémát pont a folosleges okoskodás, és átalakítások jelentik.