Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Něco navíc v zeleném?
A proč ne...

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub PHP [ŽP: neomezená] (kategorie Programování) moderuje makovec.
Archiv
Diskuse o vybornem skriptovacim jazyku php. Dulezite odkazy, pred polozenim dotazu zkuste hledat odpoved zde:
  1. www.php.net - domovská stránka PHP
  2. www.kosek.cz - spousta tutorialu pro PHP v češtině
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: tqjynre
[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
al3x 18.9.2006 02:26  1556
Jen bych jeste podotkl, ze kodovani je urcity druh metainformace, ktera by se mela dohodnout PRED spojenim, nikoliv v nem. Pokud vas klient bude pouzivat utf16 a rozhodne se to oznamit metodou SET NAMES, tak nema sanci, protoze utf18 se s ascii neshoduje ani v dolnich bytech, takze SET NAMES v utf16 precte databaze jako nejaky paskvil.

Tento argument stejne tak plati pro web. Kodovani se ma posilat v HTTP hlavicce PRED dokumentem, ktery v tom kodovani je. Nikoliv v samotnem dokumentu pres http-equiv, coz je jen hack pro autory, kteri nemaji moznost menit konfiguraci webserveru.
al3x 18.9.2006 02:19  1555
Tomas Kyte: "Pristupovat k databazi jako k cerne skrince, psat dotazy co nejobecneji, aby prosly na co nejvetsim druhu SRBD, to je nejvetsi chyba, ktere se muzeme u prace s databazi dopustit. Temer vzdy je predem jasne, na jake databazi, na jake implemetaci a dokonce na jake jeji verzi a konfiguraci aplikace pobezi. Psanim specializovaneho kodu pro tuto ziskame rychlejsi, prehlednejsi, lehci a efektivnejsi aplikace, nez kdyz budeme psat obecny kod pro pripad, ze bychom se nekdy rozhodli databazi vymenit za jinou, ke kteremu stejne v drtive vetsine pripadu nedojde."


Vase argumenty jsou sice po teoreticke rovine korektni, ale zkuste si udelat statistiku, kolik _ruznych_ kodovani pozaduji pripojeni, ktere se k vasemu serveru hlasi? Tipl bych, ze krom zlomku testovacich a ladicich dotazu, bude naprosta vetsina nastavovat vzdy jedno.

Stejny argument (jako ten vas) by se dal pouzit i mnohem obecneji. To pripojeni vlastne vubec nemusi vedet, ze na druhe strane bezi zrovna MySQL. Nebylo by korektni pouzivat jen kostrukty SQL92? Bylo by to tak prece mnohem flexibilnejsi... Uvaha hezka, ale z pohledu sw vyvoje je to temer vzdy blbost.
huh huh 18.9.2006 01:44  1554
AL3X [1550]: Nevim, podle me je mnohem lepsi rict na zacatku komunikace databazi jake chci kodovani. Je to mnohem flexibilnejsi, mohu menit kodovani v db aniz bych se musel byt jen dotknout aplikace. Stejne tak pokud provozuji ruzne aplikace, ktere treba pouzivaji ruzna kodovani. Cili ja to nevidim jako hack, ale naopak jako naprosto idealni reseni, ke kteremu se po letech dospelo. Nevidim u nej jedinou nevyhodu.
mpts mpts Je to jinak, ba přesně naopak! 18.9.2006 01:38  1553
AL3X: Já nevím, mně přijde celkem normální si na začátku spojení nastavit takové věci jako znakovou sadu apod., zkrátka domluvit se se serverem na tom, jak si budeme povídat. On přece vůbec nemusí tušit, z jakého prostředí se k němu hlásím atp.
knedle knedle online - Krabice živých 18.9.2006 01:24  1552
huh [1549]: jak rikam - tohle nemohlo vypadnou z me hlavy - asi to byl manual ci jina chytra knizka/stranka

to ze je set names ekvivalent sem netusil ->> a zase su chytrejsi
straka82 Straka82 18.9.2006 00:33  1551
pro tvxOno mi to dela doma, nikde to zatim nemam. No budu doufat, ze az to nekam dam, tak ze to bude fungovat normalne :-)
al3x 18.9.2006 00:13  1550
huh [1548]: Ja netvrdim, ze to tak v MySQL neni. Jen rikam, ze je dobre zduraznit, ze toto je spis "hack", ktery pomaha obejit spatne nastaveni serveru, nikoliv idealni reseni.
huh huh 18.9.2006 00:04  1549
knedle [1546]: SET NAMES je ekvivalent presne pro tuto trojici prikazu. Ale kdyz nekdo touzi posilat misto jednoho prikazu tri...
huh huh 18.9.2006 00:02  1548
AL3X [1544]: Ale presne takhle to v MySQL je.
knedle knedle online - Krabice živých 17.9.2006 22:43  1547
AL3X [1544]: jo - pravda
knedle knedle online - Krabice živých 17.9.2006 22:42  1546
sem se zpetne jukl a nakonec tam mam tohle:

mysqli_query($spoj, "SET character_set_results=utf8");
mysqli_query($spoj, "SET character_set_connection=utf8");
mysqli_query($spoj, "SET character_set_client=utf8");

zrejme nejake chytre stranky - tohle bych sam nevymyslel...
duirin 17.9.2006 22:40  1545
Ono stačí nastavit charset na UTF-8, db nechat taky na utf8 a jen v PSPadu, kde to píšu stačí zvolit kódování na UTF-8!!! :)) Takže ve finále to byl problém editoru.
Tak jsem se zase něco nového naučil :)
No, teď už mi hlavou vrtá jen to, proč přímo v db, do které se dívám pomocí phpMyAdmin ta diakritika není správně. Mám se s tím stresovat?

knedle [1541]: SET NAMES jsem použil ihned za mysql_connect a mysql_select_db jako
mysql_query("SET NAMES 'cp1250'")

Díky všem za rady. Ještě jsem zvědavej na to řazení s diakritikou, jak psal Straka, to jsem ještě nezkoušel.
al3x 17.9.2006 22:40  1544
Nemohu si odpustit, ale prijde vam to jako rozumne reseni? Nemelo by toto byt zalezitost nastaveni db? A SET NAMES posilat jen ve specialnich pripadech, kdy chcete kodovani jine?
mach 17.9.2006 22:37  1543
Ja teda na zacatku posilam vzdycky:

$shop->sql->sql_exec('SET NAMES utf8');
$shop->sql->sql_exec('SET CHARACTER SET utf8');
knedle knedle online - Krabice živých 17.9.2006 22:31  1542
Duirin [1540]: ja s timto mel taky neskuzecny problemy - hlavne s importem dat z mysql 4 do mysql 5...

jeste shrnu ty moje (vzhledem k legii)
db - utf8-czech-ci
stranky - meta - charset=utf8

a pro jistotu pak po spojeni s db volam
SET NAMES UTF8

[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt