![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 44 Dołączył: 17.02.2004 Skąd: Wieliczka Ostrzeżenie: (10%) ![]() ![]() |
Dziwna sprawa...
Mam bazę z ustawionym kodowaniem latin2_general_ci, nawiązując połączenie daję oczywiście: mysql_query('SET NAMES latin2',$conn); Na stronie mam ustawione oczywiście ISO-8859-2. Teraz łądnie mi dodaje nowe wpisy, ładnie też je pobiera i wyświetla - polskie znaki są ok. ...i teraz pojawia się problem! Pobrane z bazy słowa są użyte do generowana linków, gdzie to są przekazywane w formie parametru GETem. przekazywane są plskie znaki, wszystkie inne znaki specjalne są wycinane a spacje zamieniane na - czyli link ma postać index.php?param=kraków-20-05-2008 Pod Operą by mi dobrze gwyświetało odebrznego geta muszę przekodować: echo iconv("UTF-8","ISO-8859-2", urldecode($_GET['param'])); pod FF natomiast wtedy mi urywa na polskim znaku. Ale jak dam: echo urldecode($_GET['param']); to pod FF dobrze pokazuje, ale pod operą ó zamienia na krzaczki. Co jest grane? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 44 Dołączył: 17.02.2004 Skąd: Wieliczka Ostrzeżenie: (10%) ![]() ![]() |
Na stronie mam ustawione ISO-8859-2.
Problem w tym, że w linku muszę przekazać polskie znaki w postaci jawnej - zatem urlencode odpada. Zrobiłęm sobie prosty skrypt testowy wyświetlający otrzymaną zmienną $_GET i zarzucam mu np. słowo: kraków Zatem w przeglądarce wklejam linka o postaci: http://localhost/test.php?in=kraków Opera i IE zamieniają go na: http://localhost/test.php?in=krak%C3%B3w i wyświetlają w efekcie: krakĂłw A FF zamienia ten link na: http://localhost/test.php?in=krak%F3w i wyświetla w efekcie słowo: kraków Zatem Opera i IE polskie znaki kodują inaczej niż FF! Żeby pod Operą i IE otrzymać poprawny ciag, muszę otzymaną GETem zmienną przekodować przy użyciu iconv utf-8/iso-8859-2 -no ale wtedy FF niepoprawnie pokazuje wynik - ucina na polskich znakach pokazując tylko: krak Problem znika jeśli zmienię kodowanie strony na UTF-8 a otrzymaną GETem zmienną potraktuję urldecode. Jak sobie z tym poradzić zachowując kodowanie strony ISO-8859-2 ? Podkreślam! znaki w linku muszą mieć postać "jawną" - czyli np.: http://localhost/test.php?in=kraków |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 15:25 |