Tradycyjny problem z kodowaniem

W systemie portalowym mam adresy tego typu:

/1,nazwa.html

i mam to htaccessem zrobione do index.php?k=1&n=nazwa

tutaj wszystko działa.

Zrobiłem zabezpieczenie takie, że nie można wpisać adresu gdzie 1 (czyli id kategorii) nie bedzie sie zgadzać z nazwa kategorii. działa to tak:

//Pobiera aktualna nazwe kategorii

		$kategoria_temp=mysql_fetch_row(mysql_query("SELECT NAZWA FROM KATEGORIE WHERE ID=$kategoria"));

		$kategoria_nazwa=$kategoria_temp[0];

		If (!isset($_GET['n'])) $_GET['n']=$kategoria_nazwa;


	//Sprawdza aktualna nazwe z ta podana w adresie

		If ($_GET['n']!=$kategoria_nazwa) $kategoria=1;

Wszystko działa dobrze poza kategoriami gdzie w nazwie mam polskie litery. Ma ktoś pomysł jak to rozwiązać? kodowanie bazy mam latin2_general_ci a strone wyświetlam na iso-8859-2.

dane przekazujesz poprzez GET, czyli poprzez adres strony (URL), specyfikacja URL nie zakłada przekazywania polskich (czy jakichkolwiek innych) znaków diakrytycznych poprzez URL, dlatego też nie spotyka się adresów zawierających polskie znaki, bo one po prostu nie są obsługiwane poprawnie

dziekuje za blyskawiczna odpowiedz. niestety dalej nie wiem jak rozwiazac problem linki musza pozostac takie jak są moge ewentualnie pozbyc sie z nich polskich literek. czy istnieje jakas funkcja w php do tego? ma ktos jakis patent?. w sumie juz mam pomysł jak to rozwiązać. potrzebuje funkcji która zamieni literki w tekscie z polskich na hm tak: z ł na l itd…

function pl_to_lat ($str){


$znakiPl = array('Ą', 'Ć', 'Ę', 'Ł', 'Ń', 'Ó', 'Ś', 'Ź', 'Ż', 'ą', 'ć', 'ę', 'ł', 'ń', 'ó', 'ś', 'ż', 'ź');

$znaki = array('A', 'C', 'E', 'L', 'N', 'O', 'S', 'Z', 'Z', 'a', 'c', 'e', 'l', 'n', 'o', 's', 'z', 'z');

$str = str_replace($znakiPl, $znaki, $str);


return $str;

}

powinno działać, pisane co prawda z głowy, ale sądzę, że jest ok