Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Konwersja polskich znakow w adresie
Bojakki
post
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

Ostrzeżenie: (0%)
-----


jest jakis skrypt, ktory w php zmieni mi np: 'Dzierżoniów' na 'Dzier%C5%BConi%C3%B3w'
Czyli na format czytelny dla przegladrki w polu adresu?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Cezar708
post
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


urlencode()
Go to the top of the page
+Quote Post
Bojakki
post
Post #3





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

Ostrzeżenie: (0%)
-----


Konwertuje, ale nie otrzymuje stringa jaki widze na pewnej stronie
zamiast

'Dzier%C5%BConi%C3%B3w'

mam

'Dzier%BFoni%F3w'

sa rozne sposoby kodowania czy co?
Go to the top of the page
+Quote Post
Cezar708
post
Post #4





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


tak są różne sposoby kodowania:

Dzier%C5%BConi%C3%B3w to UTF-8
Dzier%BFoni%F3w to ISO-8859-2

możesz jeszcze popróbować z rawurlencode()
Go to the top of the page
+Quote Post
Bojakki
post
Post #5





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

Ostrzeżenie: (0%)
-----


Niestety to samo.

Znalazlem tez funkcje: utf8_encode
i wyszlo mi:
'DzierÂżoniĂłw'
Go to the top of the page
+Quote Post
Cezar708
post
Post #6





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(Bojakki @ 11.03.2008, 22:55:49 ) *
Czyli na format czytelny dla przegladrki w polu adresu?


no ale jeśli użyjesz urlencode() to na pewno przeglądarka to zrozumie. NIe ważne czy to pochodzi z UTF-8 czy z ISO-8859-2.

Na przykład sprawdź sobie:
http://pl.wikipedia.org/wiki/Dzier%C5%BConi%C3%B3w oraz http://pl.wikipedia.org/wiki/Dzier%BFoni%F3w zobaczysz że będziesz miał ten sam wynik (bo to ten sam URL)
Go to the top of the page
+Quote Post
Bojakki
post
Post #7





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

Ostrzeżenie: (0%)
-----


no wlasnie problem w tym, ze przegladarka zrozumiala, ale ich skrypy wewnetrzne konwertujs to i w zalenzosci od tego wybiera dane i tylko w tej pierwszej postaci, ktorej nie udaje mi sie otrzymac cos wyswietla:(
Go to the top of the page
+Quote Post
Cezar708
post
Post #8





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(Bojakki @ 11.03.2008, 23:38:38 ) *
(...) ich skrypy (...)


hmm ich skrypty... bo generalnie do dekodowanie tego co jest url służy urldecode() i zawsze mi działał poprawnie.

Myślę, że skoro nie masz dostępu do "ich skryptów" to musisz sobie napisać własna dekodującą funkcję coś na styl:

  1. <?php
  2. function myUrlEncodeSign($sign){
  3. switch($sign){
  4. case 'ż':
  5. return '%C5%BC'; break;
  6. case 'ó': 
  7. return '%C3%B3';
  8. // i tak dalej dla wszystkich polskich znakow... 
  9. default: 
  10.  return $sign;
  11. }
  12. }
  13. function myUrlEncodeWord($word){
  14. $aWord = explode("", $word);
  15. foreach( $aWord as $key => $char ){
  16. $aWord[$key] = myUrlEncodeSign($char);
  17. }
  18. return implode("", $aWord);
  19. }
  20.  
  21. echo myUrlEncodeWord('Dzierżoniów');
  22. ?>


albo spróbuj zmienić kodowanie pliku w którym robisz konwersję na UTF-8. Może pomoże

Pozdrawiam

Ten post edytował Cezar708 11.03.2008, 23:52:11
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 13:08