![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Generalnie swoje strony zawsze koduję w UTF-8. W obecnym przypadku musiałem zmienić kodowanie na windows-1250, a wynika to z faktu pobierania danych z serwera IBM AS/400 ( generalnie to nie ma znaczenia i nie wypływa na problem ). Mam taki oto kod:
Problem dotyczy sytuacji poniżęj. Wyniki otrzymuję prawidłowo, z poprawnym kodowaniem. W pierwszej kolumnie otrzymuję kolejny numer. W drugiej nazwy miast polskich np. Warszawa, Kraków, Lublin, Gdańsk. W trzeciej wartości liczbowe ( ilość rekordów gdzie wystepuje dana nazwa miasta ) W ostatniej kolumnie mam Szczegóły, gdzie tworzony jest link dodanych rekorów z danego miasta. Czyli powstaje np link zest6_wyn.php?more2=Warszawa, gdy w niego kliknę otrzymuję adres jaki jest wcześniej. Problem jest,gdy w nazwach miast wystepują polskie znaki np. Kraków Gdy najeżdżam myszką na Szczegóły to podśwtetla mi się prawidłowy link zest6_wyn.php?more2=Kraków Natomiast gdy, w niego klinkę,otwiera mi się nowa strona z takim adresem zest6_wyn.php?more2=Krak%F3w Chciałbym by otwierany link zawierał polskie znaki, gdyż na tej nowej stronie, w dalszej części kodu wyciągam nazwę miasta z linka, przypisuję do zmiennej i na tej podstawie tworzę zapytanie do bazy, dlatego muszę otrzymać w linku polskie znaki.
Jak to można zrobić? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witaj,
To musi mieć na bank związek z kodowaniem, którego używasz. Nie wiem jak windows 1250 wygląda w adresie i czy czasem nie jest tak, że nie jest wyświetlane jako utf-8. Rozwiązań jest wiele. 1. Możesz spróbować w href podać nazwę miasta skonwertowaną do utf-8 (iconv w PHP) a potem otrzymując tablicę GET przed użyciem tej zmiennej znów skonwertować ją do windows 1250. 2. Możesz posłużyć się wersją nazwy pozbawioną polskich liter, lecz wówczas musiała ona by być zapisana w bazie obok oryginalnej nazwy by można było ją rozpoznać 3. Możesz w adres wrzucać ID miasta a nie nazwę ![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Domyślam się, że ma to związek z tym kodowaniem.
Baza nie jest moja, nie mogę w nią ingerować, jedynie pobierać dane, dlatego podpowiedź 2 od razu odpada. Podpowiedź 3 również, gdyż nie ma tabeli zawierającej wszystkie miasta, miasta nie mająswojego ID, są jedynie w pisywane w polu przy danym rekordzie. A jak ten punkt 1 zrobić,możesz go rozwinąć? Robię tak:
Otrzymuję: zest6_wyn.php?more2=Krak tak to skraca,pozostałe miasta z polskimi znakami również. Ok problem rozwiązałem. W nowo otworzonej stronie ( tej z linkiem np. zest6_wyn.php?more2=Krak%F3w ) wykorzystałem informacje znalezione poniżej i działa tak jak chciałem. http://pl.php.net/rawurldecode Ten post edytował dopal 15.11.2012, 09:56:01 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 20:18 |