Autor | Zpráva | ||
---|---|---|---|
stepanka Profil * |
#1 · Zasláno: 22. 7. 2009, 20:07:01
Ahoj,
opět mám takový zvláštní dotaz, trápím se s tím už od včerejšího odpoledne, tak se teď zkusím obrátit tady... Mám na stránce export do XLS. Záhlaví tabulky mám napsané ručně a potom vybírám z databáze data a postupně do řádků vypisuju. Pokud udělám export pouze toho záhlaví, které je psané ručně, zobrazí se vše správně. Pokud ale udělám export všeho, záhlaví + dat z DB, tak se mi v celém XLS pokazí čeština. A co mi přijde nejzvláštnější, pokazí se i to záhlaví, které je psané ručně. Jako by ten výcuc z DB ovlivnil kódování na celé stránce. Zobrazí se mi v záhlaví například místo "Můj případ byl" řetězec "M¨j p°Ýpad byl". Místo "Ambulantní vyšetření" se zobrazí "ambulatnÝ vyÜet°enÝ". I když ty slova vlastně s databází nemají nic společného. Skripty jsou bohužel v kódování windows-1250. Tabulky databáze jsou všechny v cp1250_general_ci, ale celá databáze je v utf8_general_ci. Po připojení k databázi je zavolán řádek mysql_query("SET NAMES 'cp1250'"); Nenapadá někoho čím by to mohlo být? Moc děkuju. |
||
Alphard Profil |
#2 · Zasláno: 22. 7. 2009, 21:50:31
A když vypíšete text z databáze bez záhlaví?
|
||
stepanka Profil * |
#3 · Zasláno: 22. 7. 2009, 22:23:27
Alphard
Děkuji za reakci. Někde na php.net jsem našla tenhle kousek: $handle = @fopen("/tmp/inputfile.txt", "r"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer; } fclose($handle); } A když ho přidám na konec a zapoznámkuju svoje hlavičky pro stažení XSL souboru, tak mi to celou tabulku vyplivne na obrazovku. A celá je v pořádku. Přesně takovou bych ji chtěla do exportu. To ale znamená, že se celá čeština pokazí až při exportu do XLS... jsem z toho jelen :-( |
||
stepanka Profil * |
#4 · Zasláno: 23. 7. 2009, 21:22:02
Zjistila jsem z téhle stránky, že chci vypisovat win-1250, ale převede se mi to na DOS ... nevíte proč? Nestalo se to někdy někomu? V PSPadu jsem ten skript uložila jako CP1250, tak jaký DOS? Co to vůbec je za kódování?
|
||
Yur4Y Profil |
#5 · Zasláno: 23. 7. 2009, 21:34:31 · Upravil/a: Yur4Y
DOS je len spôsob, ako sa značia konce riadkov (CR+LF, 0x0D 0x0A). Je prakticky jedno, či tam bude DOS, UNIX alebo MAC.
Ale ako si všímam, veľa skriptov používa kódovanie UTF-8 a UNIX formát na konce riadkov (LF). |
||
stepanka Profil * |
#6 · Zasláno: 23. 7. 2009, 22:12:45
Yur4Y
Děkuju za reakci. Na té jpw stránce píšou: "Překvapivě častá chyba při zapnutém automatickém výběru kódu." Co tím myslí? |
||
Bubák Profil |
#7 · Zasláno: 24. 7. 2009, 00:37:37
„Co tím myslí?“
Mám tušení, že k této chybě dojde v IE, pokud prohlížená stránka nemá meta tag charset a je nastaven Automatický výběr kódování. Bavíme se o souboru XLS (MS Excel), nebo o webowé stránce? |
||
stepanka Profil * |
#8 · Zasláno: 24. 7. 2009, 10:39:38
Bubák
Aha, já jsem na prohlížení stejně použila FF, takže kdo ví kde je chyba.. Bavíme se o exportu do XLS, čili o XLS souboru. |
||
stepanka Profil * |
#9 · Zasláno: 24. 7. 2009, 11:13:49
Problém vyřešen, celou tabulku jsem převedla ICONVem na utf-8 a ještě nastavila charset=utf-8 v content-type u hlavičky header, která zajišťuje stahování.
|
||
Časová prodleva: 15 let
|
0