mam problem z zamianą znaków polskich na odpowiedniki bez ogonków tzn. łączę się z bazą MySQL i pobieram z niej dane z polskimi znakami (poprawnie są wyświetlane na stronie która jest kodowana w ISO-8859-2), schody zaczynają się gdy próbuję przerobić te znaki na ich odpowiedniki bez ogonków.
Mam tak:
{ $strona = zamien($array['nazwa_dzialu']); }
Funkcja zamiany:
function zamien($zrodlo) { //WIN "xb9" => "a", "xa5" => "A", "xe6" => "c", "xc6" => "C", "xea" => "e", "xca" => "E", "xb3" => "l", "xa3" => "L", "xf3" => "o", "xd3" => "O", "x9c" => "s", "x8c" => "S", "x9f" => "z", "xaf" => "Z", "xbf" => "z", "xac" => "Z", "xf1" => "n", "xd1" => "N", //UTF "xc4x85" => "a", "xc4x84" => "A", "xc4x87" => "c", "xc4x86" => "C", "xc4x99" => "e", "xc4x98" => "E", "xc5x82" => "l", "xc5x81" => "L", "xc3xb3" => "o", "xc3x93" => "O", "xc5x9b" => "s", "xc5x9a" => "S", "xc5xbc" => "z", "xc5xbb" => "Z", "xc5xba" => "z", "xc5xb9" => "Z", "xc5x84" => "n", "xc5x83" => "N", //ISO "xb1" => "a", "xa1" => "A", "xe6" => "c", "xc6" => "C", "xea" => "e", "xca" => "E", "xb3" => "l", "xa3" => "L", "xf3" => "o", "xd3" => "O", "xb6" => "s", "xa6" => "S", "xbc" => "z", "xac" => "Z", "xbf" => "z", "xaf" => "Z", "xf1" => "n", "xd1" => "N", " " => "_", "ń" => "n", "ŝ" => "n" ); //tablica po wielu próbach }
Gdy zamieniam np. 'n' na 'z' to wszystko działa (dodająć do tablicy odpowiednia zawartość oczywiście "n" =>"z") próbując zamienić natomiast 'ń' na 'n' wyraz pozostaje bez zmiany z polskim ogonkiem. Próbowałem iconv na różne sposoby, łączenie się z bazą ustalając określone kodowanie i nic. Może ktoś będzie wiedział ocb

System kodowania znaków dla MySQL: UTF-8 Unicode (utf8) (utf8_polish_ci)
System porównań dla połączenia MySQL: latin2_general_ci