ugrás a tartalomhoz

Mysql karakterkódolás egyeztetés.

karpati · 2008. Feb. 16. (Szo), 19.07
Gondolom már kicsit unalmas a téma, de Én sajnos nem jövök rá hol a hiba.

Az oldalak PHP-ban írodtak, mindegyik oldalban szerepel a <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> meta tag, az oldalak nem tartalmaznak BOM-ot.

A PHP verziója Version 5.2.5, default_charset: no value/ no value

A Mysql Verziója: Szerver verzió: 5.1.23
Karakter paraméterek:
character set client utf8
(Globális változó) latin1
character set connection utf8
(Globális változó) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Globális változó) latin1
character set server latin1
character set system utf8
collation connection utf8_general_ci
(Globális változó) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci

A webszerver ISS.

Az adat felvitelkor a Mysqlben ÁrvìztűrÅ‘tüköfúrógép szerpel az Árvíztűrő tükörfúrógép helyet. (vagyis nem éppen helyesen ábrázolódik )

Ha a kapcsolat létrehozásakor a PHP-ba beírom, hogy
$k = "SET NAMES UTF8";
mysql_query($k);

Akkor a Mysql-ben is helyesen jelenik meg.

Nemrég telepítettem egy Wordpresst, és nem tüztem be a wp-db.php-ba a fenti két sort, aminek a következménye a ÁrvìztűrÅ‘tüköfúrógép tárolási mód. A honlapon nem venni semmit belőle észre, de a Html Validatort kiakasztja.

Az lenne a kérdésem, hogy a fenti beállítás mellett még miért szűkséges a
$k = "SET NAMES UTF8";
mysql_query($k); beillesztése?
Mit kéne még konfigurálni, hogy a fenti két sort ne keljen alkalmazni.
 
1

Client connection?

janoszen · 2008. Feb. 17. (V), 18.34
Udv. Neked nem a client parametereit kellene tekergetni? Mert a SET NAMES utf8; a kliens oldal karakterkodolasat kozli a szerverrel. Probalj meg valami hasonlot keresni. (Kikeresnem, de egyelore nincs MySQL a gepemen; nemsokara lesz.)
2

PHP default?

karpati · 2008. Feb. 17. (V), 22.05
Szia Proclub!
Én a PHP default_charset no value-re gondolok. A böngészőnek a meta tag megmondja az utf kodolást, de hogy a PHP és a mysql közötti kapcsolatnál is egyértelmű-e az utf abban nem vagyok biztos. Persze lehet, hogy rossz nyomon járok és nem ez a hiba, bár talán ez indokolná a SET NAMES utf8-t.
3

Nincs ilyen opció

janoszen · 2008. Feb. 17. (V), 22.59
No, közben lett klikkelhető felületem, úgyhogy utánanéztem. Ha jól nézem a mysql extension-nek nincs ilyen irányú tekergethető paramétere, max a MySQL kliensnek, amivel lefordítod forrásból, tudod talán megmondani, milyen karakterkódolással menjen.

Én azt javasolnám neked, hogy ha nem akarsz a szerver konfigurálásával sokat szívni, hogy maradjon benne a set names. Már csak azért is, mert ha egyszer mozgatni kell valami másik szerverre a dolgot, egy paraméterrel kevesebb, amelyiknél el lehet rontani.

Nem tudom, mi a projekt célja, de fontolóra venném az IIS használatát is, mert az inkább ASP-re lett kihegyezve. Nyilván lenne, aki tudna vitatkozni velem, de szvsz PHP-t Apache-al vagy Lighty-vel érdemes futtatni, azok bevált konstrukciók.
4

SET NAMES

karpati · 2008. Feb. 18. (H), 14.39
Az a baj hogy a SET NAMES nincs a Wordpress előtt, így az hibásan tárolódik, szemben a többi résszel, ahol ott van és helyesen tárolódnak el. Így az adatbázis ambivalens és gyakorlatilag a költözködés biztos szívás. Persze a WP-be is beírhatom a SET NAMES de ettől meg bolondul, a karakterkódolás ugyan jó lesz, de belépni nem tudok, mert a karakter kódolás változás miatt a Hash-kód nem fog egyezni a korábban tárolttal. Gyakorlatilag ez a WP újrahúzását jelenti.

Ráadásul a SET NAMES használata tüneti kezelés, megjavul a kódolás, de igazából nem tudom, hogy mi a baj.
A teszt szerver Apache, ott nincs is semmi baj. Az ASP-t csak pár hónapig használtam, így nem vagyok otthon benne.
5

SET NAMES UTF8

karpati · 2008. Feb. 19. (K), 11.10
Tegnap újrahúztam a WP-t megkapta a SET NAMES UTF8-at. Probléma mentesen üzemel, most már helyesek a kódolások.

Proclub, köszönöm az eddigi hozzászólásaidat!