Autor | Zpráva | ||
---|---|---|---|
web2000 Profil * |
#1 · Zasláno: 21. 5. 2009, 21:34:42
Zdravím,
mám problém s češtinou ze získaných dat s mysql databáze. Tak bych chtěl někoho zkušenějšího požádat o radu. Data v databázi mám uložená v iso-8859-2, ale na stránkách mám kódování windows-1250. Za dotazem pro výběr databáze vkládám tento příkaz: mysql_query("set character set cp1250"); bohužel MySql mi na něj vůbec nereaguje jedná se o verzi 4.0.27 Neexistuje i nějaký další příkaz který by zde fungoval? Děkuji |
||
Alphard Profil |
#2 · Zasláno: 21. 5. 2009, 21:43:14 · Upravil/a: Alphard
za dotazem je to na nic, musí být před výběrem
zkuste mysql_query("set names 'cp1250'"); Edit, tu nízkou verzi jsem přehlédl, funguji už tak trochu jako automatické FAQ. |
||
Mastodont Profil |
#3 · Zasláno: 21. 5. 2009, 21:47:10 · Upravil/a: Mastodont
Alphard
Míněn byl výběr DATABÁZE. web2000 Pokud máš opravdu MySQL 4.0.X, tak to máš asi pech. Potřebuješ nejméně 4.1 |
||
web2000 Profil * |
#4 · Zasláno: 21. 5. 2009, 21:53:05
Asi máte pravdu zítra se pokusím domluvit s poskytovatelem hostingu o přesunutí na vyšší verzi.
|
||
peta Profil |
#5 · Zasláno: 22. 5. 2009, 11:18:58
Mastodont ja ma dojem, ze SET NAMES je az od 4.2
web2000 1. spravne kodovani stranky META 2. spravne kodovani od serveru PHP header() 3. spravne kodovani prevodnikem SET NAMES 4. spravne kodovani tabulky v databazi, ale na tom v podstate nesejde Pokud mas data iso-8859-2 a zobrazujes je jako windows-1250, pak potrebujes SET NAMES prevodnik SQL. Ktery se samozrejme da resit i pres PHP, ale je to trosku zatez na server. Pokud je tvoje databaze mensi nez 4.x , pak tam prevodnik SET NAMES nefunguje a lze to resit jen pres PHP. function func_charset($name) { global $CFG; $a = 'charset'; if (isset($CFG) && isset($CFG[$a]) && isset($CFG[$a][$name]) && $CFG[$a][$name]!="") { switch ($name) { case 'h_xml' : return '<?xml version="1.0" encoding="'.$CFG['charset'][$name].'"?>'; break; case 'h_html': return ' xmlns="http://www.w3.org/1999/xhtml" xml:lang="'.$CFG['charset'][$name].'" lang="'.$CFG['charset'][$name].'"'; break; case 'h_lang': return '<meta http-equiv="Content-language" content="'.$CFG['charset'][$name].'"/>'; break; case 'h_char': return '<meta http-equiv="Content-Type" content="text/html; charset='.$CFG['charset'][$name].'"/>'; break; case 'sql' : sq($CFG['charset'][$name]); break; case 'php' : header('Content-Type: text/html; charset='.$CFG['charset'][$name]); break; default: break; } } } |
||
Akacko Profil |
#6 · Zasláno: 22. 5. 2009, 11:25:46
peta
Potom máš špatný dojem, SET NAMES je opravdu od verze 4.1. |
||
Chamurappi Profil |
#7 · Zasláno: 22. 5. 2009, 12:35:40
Reaguji na peta:
„lang="'.$CFG['charset'][$name].'"';“ Proč strkáš jméno kódování do atributu „lang“, kam odjakživa patří jméno jazyka? (Tedy „cs“ pro češtinu, „en“ pro angličtinu, atd.) |
||
Mastodont Profil |
#8 · Zasláno: 22. 5. 2009, 12:46:37
peta
Byl bys tak hodný a ukázal mi, kde vidíš nějakou MySQL 4.2? http://downloads.mysql.com/archives.php |
||
Časová prodleva: 15 let
|
0