Zdravim,
poradi nekdo jak ukladat data do tabulky tak, aby bylo vzdy kodovani OK?
Jde mi nasledujici pripad:
Otevru libovolnou url, vezmu jeji obsah, odstranim tagy a cisty text ulozim do dtb. Problem nastane tehdy, kdyz ma stranka jine kodovani. Je mozne nejak pri ukladani uvest aby se to vzdy prevedlo do patricneho kodovani?
Diky za rady.
Já bych to raději převedl v php a pak uložil do db.
pokud nadefinuješ sloupec v tabulce, tak má celý sloupec (v libovolném řádku) pořád stejné kódování.
napadá mě několik možností
- pokud víš jaké kódování má stránka dá se před ukládáním nastavit "SET CHARACTER SET charset_name", jak praví manuál. Do db se pak ukládá převedená podoba.
- soupeček mít nějaký obecný bin nebo tak něco a vedle mít sloupeček s kódováním. (nic se nepřevádí neztratí se (případně) žádné info)
- jak píše zbi, převést to už v PHP.
moc víc nevím.
http://www.volny.cz/peter.mlich/www.htm#msub12
sq("SET NAMES 'cp1250' COLLATE 'cp1250_general_ci'");
kodovani zalezi na tom,
- co mas nastavene v databazi
- jake kodovani mas na www strance (META tagy)
- jake kodovani ma text (to by se na www strance mohlo zobrazovat spatne, pokud si prohlizec neprizpusobi sam kodovani a pak se to jako zobrazuje oki :) a je docela legrace dojit na chybu v kodovani)
- a jestli funguje SET NAMES, cili verze SQL>4.1neco
SET NAMES dela to, ze dane data posila v tebou zvolenem kodovani, treba 'cp1250' a na databazi zavola prevodnik, ktery je prevede na kodovani, ktere na dany radek. Cili je vse oki.
Problem nastava u SQL <4.1 , kde SET NAMES prikaz neni a tam je jednodussi nastavit PHPAdminem spravne kodovani v kazde tabulce na kodovani, jake mas na www strance. Je to trosku pracne, ale nevim o lepsim reseni.
Jeste by to slo prekodovavat pres PHP, coz jsem videl na jedne strance. Ale radeji jsem pozadal lidi na hostingu o prevod na novejsi databazi 4.1+ . Nevim, proc to meli zrovna na 3.23x
Prevedl jsem to uz v php.. trochu byl problem udelat scriptik co vzdy zjisti kodovani stranky.
aky v tom mohol byt problem :-D . Ja ti vyberiem charset z cudzieho webu bez problemov, nie to z vlastnych skriptov ;-) - to je uplne simple
Ten zlozitejsi sposob, ktorym zistis charset akejkolvek stranky / webu
$doc = new DOMDocument();
@$doc->loadHTMLFile('resource');
$meta = $doc->getElementsByTagName('meta');
$encoding = $meta->item($x)->getAttribute('content');
$x - chcelo by to interace, protoze muze bejt vice meta tagu. Pak jen vzit ten kde je encoding ruzne od nuly - detail
Ovsem z toho encoding je potrebne vybrat iba charset, detaily neriesim :-D
majky (4-b.xf.cz)
"muze bejt vice meta tagu"
nebo zadny a pak musis pouzit vlastni detekci :)