Skocz do zawartości

Polskie znaki w url i %


Dido

Rekomendowane odpowiedzi

Przy użyciu rawurlencode() otrzymuję niby poprawny url o jaki mi chodzi ale po kliknięciu

np w Edyta_G%C3%B3rniak otrzymuję w przeglądarce Edyta_G%25C3%25B3rniak

W wikipedii, last.fm ten problem jak widzę nie występuje.

Podejrzewam ,że to PHP i Apacz enkodują sobie % na %25. Jak to zatrzymać? Jest jakieś ustawienie configa?

Odnośnik do komentarza
Udostępnij na innych stronach

PO pierwsze z jakiego kodowania korzystasz? Jeżeli nie jest to UTF-8 to odpuść sobie polskie znaki w adresach.

Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.

Odnośnik do komentarza
Udostępnij na innych stronach

Mogę ci polecić odpalić sobie ten skrypt:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
if(strstr($_SERVER['HTTP_USER_AGENT'],'Windows')&&isset($_GET['url'])){
$_GET['url'] = iconv('windows-1250','UTF-8',$_GET['url']);
}
echo '<strong>Zawartosc GET[url]:</strong> '.$_GET['url']."<br>\n";
echo '<strong>Wywolany adres:</strong> '.$_SERVER['REQUEST_URI']."<br>\n";
var_dump($_GET);
//var_dump($_SERVER);
$decode = urldecode($_GET['url']);
$rawdecode = rawurldecode($_GET['url']);
echo 'urldecode(); '.$decode."<br>\n";
echo 'rawurldecode(); '.$rawdecode."<br>\n";
echo 'urlencode(); '.urlencode($decode)."<br>\n";
echo 'urlencode(); '.rawurlencode($rawdecode)."<br>\n";
echo 'Link 1: <a href="'.$_SERVER["SCRIPT_NAME"].'?url='."\x7a\x61\xc5\xbc\xc3\xb3\xc5\x82\xc4\x87\x20\x67\xc4\x99\xc5\x9b\x6c\xc4\x85\x20\x6a\x61\xc5\xba\xc5\x84".'">tekst zapisany w utf-8 - zażółć gęślą jaźń</a>'."<br>\n";
echo 'Link 1: <a href="'.$_SERVER["SCRIPT_NAME"].'?url='.urlencode("\x7a\x61\xc5\xbc\xc3\xb3\xc5\x82\xc4\x87\x20\x67\xc4\x99\xc5\x9b\x6c\xc4\x85\x20\x6a\x61\xc5\xba\xc5\x84").'">urlencode</a>'."<br>\n";
echo 'Link 1: <a href="'.$_SERVER["SCRIPT_NAME"].'?url='.rawurlencode("\x7a\x61\xc5\xbc\xc3\xb3\xc5\x82\xc4\x87\x20\x67\xc4\x99\xc5\x9b\x6c\xc4\x85\x20\x6a\x61\xc5\xba\xc5\x84").'">rawurlencode</a>'."<br>\n";
?>

I zobacz jak reagują przeglądarki w pasku adresu i jak przy kopiowaniu. O ile firefox i chrome każdą formę dekodują w pasku adresu o tyle IE tylko jeśli klikniesz w czysty tekst. Zawartość GET jest już odkodowana.

Mogę ci tlyko dać wskazówkę, że ręcnzie wpisane adresy są w kodowaniu windows-1250 - w IE i firefoxie a w chroiem są w utf-8.

Poszukaj gdzieś funkcji z wikipedii, albo skonfiguruj jakoś serwer jeśli się da.

Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności