Hozzászólások
Sziasztok!
Olyan problémám van MySQL 4.1-el, hogy adott egy lekérdezés pl.:
SELECT `nev` from `db`.`tabla` where `nev`='géza';
Erre az sql kidobja nekem geza -t is, meg géza -t is. Tehát valamiért a hosszú ú az eqvivalens a rövid u val.
Mielott valaki lamazna es megkövezne, a table latin2, a collate pedig latin2_hungarian_ci, a nev mezo szinten latin2 es ugyanaz a collate.
Mi lehet a probléma?
Üdv.
- A hozzászóláshoz be kell jelentkezni
Nekem e1 olyan problémám van, mikor létrehozom a kapcsolatot,egyeltalán nem nem lehet ékezeteket írni,csak bippel egyfolytába.A fenntiek alapján sem tudom a cliens oldalon rábirni, h magyar ékezetek jelenjenek meg.
Köszönöm a segítséget!
- A hozzászóláshoz be kell jelentkezni
[quote:d8e4d2fe60="djsmiley"]Sziasztok!
Olyan problémám van MySQL 4.1-el, hogy adott egy lekérdezés pl.:
SELECT `nev` from `db`.`tabla` where `nev`='géza';
Erre az sql kidobja nekem geza -t is, meg géza -t is. Tehát valamiért a hosszú ú az eqvivalens a rövid u val.
Mielott valaki lamazna es megkövezne, a table latin2, a collate pedig latin2_hungarian_ci, a nev mezo szinten latin2 es ugyanaz a collate.
Mi lehet a probléma?
Üdv.
Nem tudom jó-e neked, de próbáld ki a:
where binary nev='géza'
opciót. Ekkor a kis és nagybatű különbözőnek számít..
- A hozzászóláshoz be kell jelentkezni
a myqsl rész meggyógyult... de ha utf-8 ra állítom a headert, akkor a forráskódban elhelyezett többi ékezetes karakter helyére ? rak... lehet, hogy egy frissebb php segítene?
- A hozzászóláshoz be kell jelentkezni
[quote:1dc69dcbcc="adathalmaz"]a myqsl rész meggyógyult... de ha utf-8 ra állítom a headert, akkor a forráskódban elhelyezett többi ékezetes karakter helyére ? rak... lehet, hogy egy frissebb php segítene?
gondolom mert a forrás nem utf-8ban van...
- A hozzászóláshoz be kell jelentkezni
[quote:11a5809ca3="adathalmaz"]de ha utf-8 ra állítom a headert, akkor a forráskódban elhelyezett többi ékezetes karakter helyére ? rak...
a forrast valszeg nem utf-8-ban irtad
[quote:11a5809ca3="adathalmaz"]lehet, hogy egy frissebb php segítene?
nem
ez viszont erdekes lehet szamodra:
http://www.php.net/manual/en/ref.mbstring.php
- A hozzászóláshoz be kell jelentkezni
Na, leszek olyan jo es picit upolom a temat :)
Eredeti problema meg mindig megvan, ami egyel feljebb le van irva. Senki nem talalkozott meg hasonloval. Tehat a mysql lekerdezeskor a geza-ra kiadja géza -t.
Erre keresek ingen intenzíven valami gyógyírt.
Thx mégegyszer.
- A hozzászóláshoz be kell jelentkezni
A collate a bunos. Collate az, ami megmondja, hogy 2 karaktert osszehasonlitva mi lesz az eredmeny. Eszerint van
- binary: ket karakter akkor egyenlo, ha byte-re ugyanazok, pl latin2_bin
- nem binary: bizonyos egyezosegek lehetnek, latin2_hungarian_ci esetn pl é és e egyenlo.
Ha tudod valtoztatni a tablakat, akkor jobban jarsz, ha az adott tabla / adatbazis default collation-jat megvaltoztatod binarisra.
Ha nem tudsz valtoztatni a tablakon, akkor a csunyabb megoldas az, hogy query-kent megadod a COLLATE-t.
[code:1:3180ea2e71]
mysql> select _latin2'geza' = _latin2'géza' collate latin2_hungarian_ci;
+-----------------------------------------------------------+
| _latin2'geza' = _latin2'géza' collate latin2_hungarian_ci |
+-----------------------------------------------------------+
| 1 |
+-----------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select _latin2'geza' = _latin2'géza' collate latin2_bin;
+--------------------------------------------------+
| _latin2'geza' = _latin2'géza' collate latin2_bin |
+--------------------------------------------------+
| 0 |
+--------------------------------------------------+
1 row in set (0.00 sec)
[/code:1:3180ea2e71]
- A hozzászóláshoz be kell jelentkezni
Szia!
Errol a latin2_bin -rol nem tudtam. Ezer koszonet a segitsegert.
Udv.
- A hozzászóláshoz be kell jelentkezni
tovább görgetve a problémát...
ha jól láttam, úgy lesz utf-8 a kódóm, hogy az ékezetes karaktereket helyetesítem &xxxx-el... van erre valami más megoldás is?
síma html-ben ok
php echo-jával nem jeleníti meg....
- A hozzászóláshoz be kell jelentkezni
[quote:daff8e5e5f="adathalmaz"]tovább görgetve a problémát...
ha jól láttam, úgy lesz utf-8 a kódóm, hogy az ékezetes karaktereket helyetesítem &xxxx-el... van erre valami más megoldás is?
síma html-ben ok
php echo-jával nem jeleníti meg....
\&xxxx ???
- A hozzászóláshoz be kell jelentkezni
pl ő=ő
- A hozzászóláshoz be kell jelentkezni
[quote:455d952b03="adathalmaz"]pl ő=ő
\ő ??? Igy nem muxik?
^
^
^
- A hozzászóláshoz be kell jelentkezni
[quote:973681c409="Oregon"]
\ő ??? Igy nem muxik?
^
^
^
a html kód rendesen megjeleníti, de php-ban echo-ban történő kiíratásnál nem ír ki semmit... illetve, ezek szerint át kellene nyálazni az ékezetes karakterekhez tartozó kódókat... vagy még mindig nem jól látom?
milyen szerkesztőt ajánlatok?
a hapedit ezek szerint nem utf barát...
- A hozzászóláshoz be kell jelentkezni
[code:1:8167598992]
<?php
header('Content-Type: text/html; charset=utf-8');
echo('ő');
?>
[/code:1:8167598992]
nekem ez egy hosszu o"-t mutat
- A hozzászóláshoz be kell jelentkezni
Most tesztelem a migraciot 4.0-rol 4.1.10a-ra
alapbol azt mondja a "collaction | egybevetes", hogy latin1_swedish_ci
ha igy hagyom akkor minden oke, de ha atrakom latin2_hungarian_ci akkor a hosszu őű helyett egy kerdőjel lesz. (nem csak a regi adatoknal, hanem az ujonnan felvitteknel is)
Más is találkozott már ezzel a problémával?
Mit javasoltok?
Tom: mostantol hasznaljam a latin1 sved kodtablat? :)
- A hozzászóláshoz be kell jelentkezni
[quote:17cdac27b9="Oregon"]a hosszu őű helyett egy kerdőjel lesz. (nem csak a regi adatoknal, hanem az ujonnan felvitteknel is)
az adatfelvitel milyen kornyezetbol tortenik?
- A hozzászóláshoz be kell jelentkezni
[quote:8d18bc69fa="snq-"][quote:8d18bc69fa="Oregon"]a hosszu őű helyett egy kerdőjel lesz. (nem csak a regi adatoknal, hanem az ujonnan felvitteknel is)
az adatfelvitel milyen kornyezetbol tortenik?
vagy a phpmyadmin (utf8|8859-2) vagy sajat feluletrol ami 8859-2 mind a ket esetben ugyanazt csinalja.
- A hozzászóláshoz be kell jelentkezni
igen... ha csak így szimplán beírom, akkor tényleg ok...
csak most már az a kérdésem, hogy pontosan hova tegyem a headert, hogy normálisan működjön...
az oldal keverve van php, html ellemekkel... illetve a html tag előtt van egy adag php kód, meg némi include...
- A hozzászóláshoz be kell jelentkezni
Szoval kis gyorstalpalo 4.1-bol:
Meg lehet adni minden mezonek kulon karakter kodolast. Ha nincs megadva, akkor default table / db / server-t vesz. Ezt meg lehet nezni a show create database paranccsal. Ez a tarolas resze.
Lekerdezes / feltoltes-nel a 'set names latin2' pl megadja, hogy amit te kuldesz, az latin2 lesz, amit te kapsz, az is.
Bovebben: http://dev.mysql.com/doc/mysql/en/charset.html
SZVSZ problema ott lehet, hogy 4.0 alatt latin1 a server, ebbe te beleteszel latin2-es őŐűŰ-t, ami latin1 alatt nem teljesen az.
- A hozzászóláshoz be kell jelentkezni
[quote:0b5c84be8c="adathalmaz"]hogy pontosan hova tegyem a headert, hogy normálisan működjön...
headert akkor kell dobni, amikor meg biztosan nem hasznaltal outputot generalo php kodot, illetve html-t sem irtal (meg egy soremelest sem)
- A hozzászóláshoz be kell jelentkezni
[quote:dba20f4886="lukit"]Lekerdezes / feltoltes-nel a 'set names latin2' pl megadja, hogy amit te kuldesz, az latin2 lesz, amit te kapsz, az is.
finomhangolas set names helyett:
set character_set_client = x;
set character_set_results = x;
set character_set_connection = x;
- A hozzászóláshoz be kell jelentkezni
bocsi, ha volt már...
apache 1.3.22+php4.3.3+mysql4.1.7
ha lekérek egy oldalt, az ékezetes betük helyet más karaktereket jelenít meg...
ha phpmyadmin-ban nézem meg a cellák tartalmát, akkor minden rendben van...
pl
Ĺ�ÊåúŹÜßóĂ=őéáúűöüóí
nézegettem a nyelvi beállítást, szerintem jó... ahz oldal elején is megadom, hogy milyen karaktereket használ...
3.x alatt nem volt ilyen problémám...
a google-n sem találtam semmi értelmeset..
előre is köszönöm..
- A hozzászóláshoz be kell jelentkezni
[quote:db65728790="lukit"]Szoval kis gyorstalpalo 4.1-bol:
Meg lehet adni minden mezonek kulon karakter kodolast. Ha nincs megadva, akkor default table / db / server-t vesz. Ezt meg lehet nezni a show create database paranccsal. Ez a tarolas resze.
Lekerdezes / feltoltes-nel a 'set names latin2' pl megadja, hogy amit te kuldesz, az latin2 lesz, amit te kapsz, az is.
Bovebben: http://dev.mysql.com/doc/mysql/en/charset.html
SZVSZ problema ott lehet, hogy 4.0 alatt latin1 a server, ebbe te beleteszel latin2-es őŐűŰ-t, ami latin1 alatt nem teljesen az.
Koszi szepen. mar latom mi okzta ezt az alapotot.
A kovetkezo van hatra: latin1 atformazasa latin2-re.
Erre tudsz valami jo megoldast?
- A hozzászóláshoz be kell jelentkezni
Ha jól látom, ez UTF-8-as adat. Az apache-nak valszeg van alapértelmezett charset-je és az nem utf-8. Vagy szedd ki, hogy ne küldje ezt az infot a http header-ben vagy állítsd át utf-8-ra (AddDefaultCharset utf-8).
Laci
- A hozzászóláshoz be kell jelentkezni
Oregon: http://dev.mysql.com/doc/mysql/en/charset-conversion.html talan ez segit, meg ott a kornyeke.
- A hozzászóláshoz be kell jelentkezni
[quote:4b67fd33ca="lukit"]Oregon: http://dev.mysql.com/doc/mysql/en/charset-conversion.html talan ez segit, meg ott a kornyeke.
Sajnos nem tudok (meg) angolul :(
- A hozzászóláshoz be kell jelentkezni
oke, ezt angol tudas nelkul is megertettem.
koszi szepen.
- A hozzászóláshoz be kell jelentkezni
csak, hogy ne feljtsetek el...
ha beállítom a headert utf-8ra, akkor a mysql-ből kivet adatok jól jelennek meg, a forráskódba beírt ékezetek viszont nem...
ha mást adok meg a header-ben (charset=windows-1250,charset=ISO-8859-2) , akkor pont fordítva...
lehet, hogy ez már php beállítási gond...
ja, és a mysql-ben a mezők utf-8 ra vannak állítva...
- A hozzászóláshoz be kell jelentkezni
[quote:e1397cfd4a="adathalmaz"]csak, hogy ne feljtsetek el...
ha beállítom a headert utf-8ra, akkor a mysql-ből kivet adatok jól jelennek meg, a forráskódba beírt ékezetek viszont nem...
ha mást adok meg a header-ben (charset=windows-1250,charset=ISO-8859-2) , akkor pont fordítva...
lehet, hogy ez már php beállítási gond...
Ok: nem egyezik a mysql-bol nyert adatok kodolasa a html-ek kodolasaval.
Megoldas1:
probald meg az sql kapcsolat felepitese utan ezt:
SET character_set_results = latin2
es aztan headerben charsetnek iso-8859-2
Megoldas2:
a html-t atkonvertalod latin2-rol utf8-ra es header-ben ezt adod meg
Megoldas3:
az SQL mezoket atkonvertalod latin2-re es ezt hasznalod header-ben is, erre linket 1-2 hozzaszolassal fentebb
- A hozzászóláshoz be kell jelentkezni
PHP kodod tartalmazzon ilyeneket:
[code:1:845d136612]
[..]
header("Content-Type: text/html; charset=utf-8");
[..]
[..]mysql_connect[..]
mysql_query('SET NAMES utf8');
[/code:1:845d136612]
innentol mar jonak kell lennie ekezeteknek. Apache-ban celszeru kikapcsolni default charsetet, hiszen php-ban ugyis definialod...
- A hozzászóláshoz be kell jelentkezni