Autor Zpráva
mathew99
Profil
Dobrý den,
mám problém s komunikací mezi databází mysql 3.23.58 a php scriptem co se některých českých znaků týče. Pokud text uložím a pak jej opět načtu na své stránky, nezobrazí se české znaky ž,š,ť nebo se zobrazí zkomoleně.
Přitom pokud něco uložím přímo v mysql, zobrazí se to na webu v pořádku. Rovněž ukládání z prohlížeče IE funguje jak má, protože tam je nastaveno kódování, které mám v hlavičce ISO 8859-2. Bohužel mozzila firefox si nějakým zázrakem převede kódování na windows-1250 a tam už komunikace s databází v pořádku není.

Na netu jsem našel plno rad pro mysql 4.1 a vyšší, ale bohužel s touhle starší verzí si nevím rady. Má-li někdo s tímhletím zkušenosti, budu velice vděčný za každou radu.
Leo
Profil
Zkuste upresnit, jaky je ve vasem pripade rozdil mezi

1, "Pokud text uložím a pak jej opět načtu na své stránky" (nebeha)
2, "Přitom pokud něco uložím přímo v mysql"
3, "Rovněž ukládání z prohlížeče IE funguje jak má"

Prohlizec do databaze nejspis nic neuklada, zase to dela nejaky skript, ne? Ve druhem pripade nic takoveho jako "primo" neni, musite mit zase nejakeho klienta (phpmyadmin, mysql front, atd.).

Leo
mathew99
Profil
na strankach mam samozrejme skript, ktery uklada data do databáze. zajímavé je, že pokud jsem na svých stránkách přes IE, napíšu text a dám uložit článek, a poté si jej zobrazím, české znaky fungují. Naopak když to samé provedu přes mozzilu firefox, zobrazí se paznaky. přitom jde o ten samí skript a ty samé stránky.
Pokud neco uložím přímo na linuxovém serveru přes příkazový řádek, např. vložím do databáze data ze souboru uloženého v ISO 8859-2, a článek pak načtu na stránkách, vše v IE i firefoxu také funguje:
příklad: mysql -u login -p < data.sql

nejlíp asi pochopíte příklad přímo z mého webu: http://www.stud.fit.vutbr.cz/~xhasma00/

díky za pomoc

ještě tedy oprava. text uložený přes IE se po opětovném načení z databáze zobrazí správně pouze ve wysiwyg editoru, tedy v editovatelném tagu, ovšem na hlavní stránce se zkomolenina zobrazí v obou případech. přitom kódování všech částí systému je původně nastaveno na ISO 8859-2.
mathew99
Profil
tak tedy z IE se to jak vidím zobrazuje správně i na hlavní stránce. Už se v tom opravdu ztrácím:o)
mathew99
Profil
v problému mám již zřejmě jasno. pokud před uložením ve firefoxu změním kódování na ISO 8859-2, a dám odeslat, data se uloží v pořádku. Ovšem všechen ostatní text menu a podobně je v tu chvíli zobrazeno špatně. Zůstává tedy už jen otázka, jak zabránit firefoxu aby si mé stránky překódoval z ISO do win-1250 nebo jak před vykonáním mysql_query($sql) změnit kódování vkládaného řetězce na ISO.
Leo
Profil
Mate u vsech stranek kde provadite vystup v meta hlavicce spravne kodovani, mate stranky ulozene v tomhle kodovani, a neposila server jine kodovani v http hlavicce? Leo
mathew99
Profil
ano, v meta je nastaveno
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
všechny stránky jsou editovány v pspadu a uloženy v ISO 8859-2,
proto nechápu jaktože při zobrazení firefoxem se zobrazí v hlavičce
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
:o(
mathew99
Profil
haló, opravdu nikoho nenapada, jak si poradit s tím kódováním?
Leo
Profil
No to musite vedet vy, kde mate binec, nebo administrator serveru, pochybuju, ze by si FF sam menil HTML kod :-) Na dalku vam tezko kdo poradi. Leo
mathew99
Profil
Tož nakonec nejlíp, když si člověk poradí sám:o) Pro ty, co by se někdy setkali se stejným problémem sem hodím řešení.
Pokud vám prohlížeč ignoruje meta tag s kódováním jazyka, problém je zřejmě na straně serveru, který vaše soubory z mě zatím neznámého důvodu překóduje do jiného kódování. Snad aby bylo srozumitelnější pro prohlížeče.

Řešit problém při spojení s databází se dá tak, že převedete všechny sporné znaky (jsou to jen žšťŽŠŤ) do html entit, např. ž myslím je zápis pro ž a podobně. Pak už by to mělo být v pořádku. Rovněž existují i funkce pro překódování řetězce ze sady do sady. Ta, co mám díky svému vedoucímu bp je ale příliš rozsáhlá na to, abych sem kopčil zdroják. Komu se nechce hledat na netu, nechť se mrkne na odkaz na mí stránky výše, v zápatí je odkaz na můj email.
Leo
Profil
"který vaše soubory z mě zatím neznámého důvodu překóduje do jiného kódování."

Takovy server zahodit :-) Leo
Toto téma je uzamčeno. Odpověď nelze zaslat.