Autor Zpráva
Kalby
Profil
Zdravim,

uz asi hodinu se morim s problemem prevodu mdb databaze do sql. Je nutne v databazi provest nektere zmeny sloupcu proto se musi zpracovat v PHP. Nainstaloval jsem si ODBC, vsechno zprovoznil. Funguje az na jednu drobnost, nefunguji ceske znaky (tedy konkretne jenom ž,š,č myslim.

PHP soubor je normalne v utf-8 databaze take. Tady je kod:

$conn=odbc_connect('db','','');
$sql="SELECT * FROM Results";
$rs=odbc_exec($conn,$sql);
$db=mysql_connect('127.0.0.1', 'root', '');
mysql_select_db('databaze',$db);
mysql_query("SET NAMES 'utf8'");


while (odbc_fetch_row($rs)){
mb_convert_encoding(odbc_result($rs,"nazev_objektu"),'utf-8')
}


pokud tam neni funkce mb_convert_encoding tak to napise jen do prvniho znaku s carkou nebo hackem a pote uz nic. Pokud tam funkce je misto znaku š,č,ž pise ?

Divne je to ze kdyz to dam vypsat do prohlizece vse se zobrazi korektne....
Aesir
Profil
[#1] Kalby:
Zkuste použít MySQL Migration Toolkit, ten má docela široký záběr, včetně podpory Microsoft Access.
Kalby
Profil
Tyhle utilitky uz jsem zkousel ale neni to přesně to co chci. Ja jsem používal tenhle: Bullzip MS Access to MySQL, ale některé tabulky jsou dost velké a hlásí to chybu. Ten převod musi jit, kdyz se mi to do prohlizece vytiskne spravne, musi to jit i do databaze jenom nekde delam chybu
Kajman_
Profil *
Třeba odbc samo překódovává do nějaké znakové sady, kterou convert neuhádne.

Když si to vypíšete a je to správně zobrazené, tak v prohlížeči je nastavená jaká znaková sada pro zobrazení?
Aesir
Profil
Zrovna jsem chtěl napsat něco podobného. Nevím, jestli to stále platí, ale když jsem řešil kdysi něco podobného s JDBC-ODBC, tak v té době používal interně MS Access UTF-16, takže bych si nebyl jistý tím, že z ODBC to vypadne v UTF-8 a i proto jsem doporučoval nástroj, který si s tím poradí.
Kalby:
Zkuste si zjistit opravdu výstupní kódování v tom ODBC resultu.
Nebo možná zkuste naslepo doplnit pro mb_convert_encoding třetí parametr vstupního kódování pro UTF-16, pokud platí, to co jsem psal výše :)
Kalby
Profil
Tak nevim jestli se ten posledni prispevek odeslal tak pro jistotu jeste jednou kodovani v prohlizeci se mi zobrazi windows-1252, tak nevim, utf-16 nepomohlo :)

EDIT: tak prevod z windows-1252 pomohl, diky ani me nenapadlo se podivat v cem to zobrazi firefox :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0