Tag: diakrytyczne

ISO-8859-1 latin1 ISO-8859-2 latin2 Windows-1250 cp-1250 UTF-8 utf8

ISO-8859-1 latin1 ISO-8859-2 latin2 Windows-1250 cp-1250 UTF-8 utf8

Głęwiem wstępu intotrintorestycznego do convertera dodałem nowe tablice dla kodowania latin1, w którym polskie znaki są zapisane jako krzaczki, krzaki. Otóż konwersja z kodowania ISO-8859-1, w którym nie istnieją polskie znaki, jest jedynie dla kopii baz danych w pliku wykonanych za pomocą phpMyAdmin czyli plików kopii zapisanych w kodowaniu UTF-8 (w tym kodowaniu phpMyAdmin eksportuje bazę danych do pliku). Poprzednie tablice obsługiwały tylko i wyłącznie polskie znaki, co niestety nie służyło polepszeniu stosunków z innymi narodowe znaki i osobami wykorzystujące te znaki diakrytyczne. Teraz tablice obsługują wszelkie znaki (wszelkie języki) które są w kodowaniu ISO-8859-2 Konwersja z latin1 na utf8 – Convert from latin1 to utf8.

  • Polski
  • Bośniacki
  • Chorwacki
  • Czeski
  • Węgierski
  • Serbski (w transkrypcji łacińskiej)
  • Serbsko-Chorwacki
  • Słowacki
  • Słoweński
  • Górnołużycki
  • Dolnołużycki
  • Angielski
  • Niemiecki
  • sporną kwestią jest język Fiński

Dla porównania, poprzednie tablice do konwersji na utf-8 zawierająca tylko 18 polskich znaków natomiast aktualne zawierają wszystkie znaki dla wszystkich języków i znaków specjalnych zawierająca wszystkie istniejące znaki w tym kodowaniu – 167 znaki.
Teraz po konwersji z latin1 bez problemu można konwertować – wszelkie znaki będą działać!

Kodowanie znaków

Kodowanie znaków
Polega na zapisie znaków w celu ich późniejszego odczytania w tym samym kodowaniu. W skrócie, zapisujemy dane w jednym kodowaniu i następnie by je poprawnie odczytać należy odczytać w tym samym kodowaniu a którym je zapisaliśmy. Zapisujemy w kodowaniu utf-8 i odczytujemy w utf-8. Jeśli odczytamy w innym to pojawia się nam krzaki zamiast oczekiwanych znaków. Różne kodowania obsługują różne znaki, najczęściej nieobsługiwane znaki w danym kodowaniu są zamieniane na znaki zapytania.

Pragnę przypomnieć: w kodowaniu latin1 polskie znaki są zapisane jako krzaki, i po konwersji z kodowania latin1 do ISO-8859-2 lub UTF-8 na stronie Konwersja z latin1 na latin2 – Convert from latin1 to latin2, krzaki zapisane w bazie przemieniają się w polskie znaki (znaki diakrytyczne, narodowościowe, narodowe). Polskie znaki są zapisywane jako krzaki najczęściej na serwerach na których jest domyślna konfiguracja serwera mysql, wyglądająca następująco, konfigurację poznamy wykonując kolejno zapytania:
kodowanie mysql

SHOW VARIABLES LIKE 'character_set%';

domyślna konfiguracja serwera mysql:

character set clientlatin1
character_set_connectionlatin1
character set databaselatin1
character_set_resultslatin1
character_set_serverlatin1
character_set_systemlatin1

porównywanie mysql

domyślne porównania serwera mysql

SHOW VARIABLES LIKE 'collation%';
collation_connectionlatin1_swedish_ci
collation_databaselatin1_swedish_ci
collation_serverlatin1_swedish_ci

Jeśli twoje ustawienia są takie jak powyżej, a działają Ci polskie znaki to oznacza, że nie masz polskich znaków a jedynie krzaczki w bazie danych w kodowaniu latin1 Konwersja z ISO-8859-2 na UTF-8 – Convert from ISO-8859-2 to UTF-8 tak naprawdę mamy mnóstwo krzaków zamiast polskich znaków…

Naprawa krzaczków polskich znaków to zrobienie backupu bazy i konwersja za pomocą konwerter kodowań z latin1 na dowolne inne, należy pamiętać,że przy wgrywaniu takiej przekonwertowanej kopii należy wybrać to samo kodowanie na które przekonwertowaliśmy naszą kopię bazy, należy pamiętać o wybraniu zgodności mysql40 Konwersja z UTF-8 na ISO-8859-2 – Convert from UTF-8 to ISO-8859-2, oraz przed wgraniem należy ustawić kodowanie dla bazy by wgrywane tabele ze zgodnością mysql40 przyjęły właściwe kodowanie (ustawiamy także to samo na które przekonwertowaliśmy bazę) za pomocą zapytania:

ALTER DATABASE nazwa_bazy DEFAULT CHARACTER SET nazwa_kodowania COLLATE porównanie_znaków_dla kodowania;

dla kodowania latin2 będzie to wyglądać tak:

ALTER DATABASE nazwa_bazy DEFAULT CHARACTER SET latin2 COLLATE latin2_general_ci;

dla kodowania utf8:

ALTER DATABASE nazwa_bazy DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Teraz po takim ustawieniu, wszelkie tabele wgrywane ze zgodnością z mysql40 przyjmą kodowanie jakie ustawiliśmy dla bazy danych. Następnie aby je poprawnie odczytać ustawiamy odpowiednie kodowanie za pomocą SET NAMES oraz aby poprawnie wyświetlić ustawiamy odpowiednią definicję kodowania w pliku HTML. Od tej pory w naszej bazie danych istnieją polskie znaki.

Kolejna informacja: latin1 to to samo kodowanie co ISO-8859-1 tylko, że pod inną nazwą. Tak samo jest z latin2, jest to to samo kodowanie co ISO-8859-2. Są to odmienne nazwy, można ich używać zamiennie, zależy także od zastosowania, uproszczone nazwy najczęściej są wykorzystywane w bazach SQL MYSQL

SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'

a ich dłuższe odpowiedniki na stronach w definicji kodowej HTML. Przykładowo dla treści typu text/html oraz kodowania utf-8

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

SET NAMES ‘charset_name’ COLLATE ‘collation_name’

Otóż w każdym skrypcie w jakim łączymy się z mysql powinniśmy tuż po połączeniu z bazą danych ustawić kodowanie i porównanie z jakiego będziemy korzystać. To jest tak samo jak definicja kodowania w dokumencie HTML / XHTML, jeśli nie ustawimy to zdajemy się na wartości serwera, co często jest opłakane w skutkach na przykład będziemy próbować zapisać tekst zakodowany w utf-8 do bazy w kodowaniu latin2 Konwersja z latin2 na utf8 – Convert from latin2 to utf8, życzę powodzenia…

SET NAMES 'charset_name'

Otóż SET NAMES ustawia 3 parametry na raz z których będzie korzystać nasze połączenie z bazą, w miejsce charset_name wstawiamy nazwę kodowania w formacie odpowiednim dla MYSQL (kiedyś może zrobię listę), a te trzy parametry to:

character_set_client
character_set_results
character_set_connection
character_set_client
Ustawia kodowanie dla klienta
character_set_results
Ustawia kodowanie dla wyników zapytań
character_set_connection
Ustawia kodowanie dla połączenia

Konwersja z utf8 na latin2 – Convert from utf8 to latin2
I te 3 ustawienia konfigurujemy za pomocą jednego SET NAMES. Dochodzi jeszcze porównywanie połączeń (collate, collation) które ustawiamy poprzez dodanie drugiego parametru do SET NAMES, wygląda to tak:

SET NAMES 'charset_name' COLLATE 'collation_name'

Porównywanie to w dużym skrócie sortowanie wyników wedle wybranego kodowania (na przykład przy wybraniu utf8_polish_ci wyniki będą sortowane zgodnei z polskim alfabetem – alfabetycznie). Za charset_name wstawiamy nazwę kodowania a za collation_name wstawiamy nazwę porównywania. Parametr COLLATE ustawia 2 parametry na raz:

collation_connection
collation_database

Konwersja z Windows-1250 na UTF-8 – Convert from Windows-1250 to UTF-8

collation_connection
porównywanie znaków dla połączenia
collation_database
porównywanie znaków dla bazy danych

Informacje o dawno zapomnianym koderku https://tosiek.pl/koderek/, oczywiście to wszystko dotyczy konwerter.

usuwanie znaków specjalnych z kodowania iso-8859-2 latin2

usuwanie znaków specjalnych z kodowania iso-8859-2 latin2

Często zachodzi potrzeba zamiany ogonków na ich graficzne odpowiedniki bez ogonków w kodowaniu ASCII. Najczęściej służy to do przygotowania tekstu wo wyświetlenia w adresie urluri. Lecz niestety jest to zależne od użytego kodowania na stronie jak i bazie danych MYSQL.

Ponieważ najczęściej wykorzystujemy podmianę znaków specjalnych, narodowych, diakrytycznych w przygotowywaniu przyjaznych adresów – friendly URL ze słowami kluczowymi dlatego też potrzebujemy dynamicznej funkcji która to zrobi za nas automatycznie.

Tutaj prezentuję tablice oraz funkcje specjalnie dla kodowania iso-8859-2, znanego pod nazwą latin2, jeszcze inna nazwa to ISO/IEC 8859-2 jak i kodowanie środkowoeuropejskie oraz wschodnioeuropejskie. Może jest to dosć zacofane kodowanie lecz nadal często używane na stronach WWW oraz bazach mysql (latin2) ze względu na obsługę polskich znaków diakrytycznych.

Kodowanie iso-8859-2 obsługuje takie języki jak (pod względem znaków narodowych – specjalnych):

  • Polski
  • Bośniacki
  • Chorwacki
  • Czeski
  • Węgierski
  • Serbski (w transkrypcji łacińskiej)
  • Serbsko-Chorwacki
  • Słowacki
  • Słoweński
  • Górnołużycki
  • Dolnołużycki
  • Angielski
  • Niemiecki
  • sporną kwestią jest język Fiński

Jednakże zalecą się stosowanie kodowań zgodnych z Unicode np. utf-8, ponieważ mimo iż iso-8859-2 wydaje się obsługiwać wiele języków obsługuje ono tylko podstawy i w swoim asortymencie posiada tylko niewiele znaków specjalnych, oraz cała tablica kodowania jest skromna.

O co chodzi w tej konwersji iso-8859-2 to ASCII, otóż o to by zamienić np. nasze polskie ć na jego odpowiednik c który może być obsłużony w adresach URL przez przeglądarki i niestety trzeba postąpić tak z każdym zadaszkowanym i ogonkowym znakiem. Ř -> R i tym podobne…

Poniżej przedstawiam tablice do użytku nie komercyjnego, które ostatnio sobie stworzyłem do przygotowania przyjaznych adresów w kodowaniu iso-8859-2. Są niewrażliwe na kodowanie pliku w którym są zapisane ponieważ korzystają z wartości heksadecymalnych popularnie zwane HEX. Zamieniają każdy znak na jego graficzny odpowiednik, działają z wielkimi jak i małymi literami! Oczywiście zamieniają także polskie znaki!

$map_latin2=array(
"\xa1","\xa3","\xa5","\xa6","\xa7","\xa9","\xaa","\xab","\xac","\xae","\xaf",
"\xb1","\xb3","\xb5","\xb6","\xb9","\xba","\xbb","\xbc","\xbe","\xbf","\xc0",
"\xc1","\xc2","\xc3","\xc4","\xc5","\xc6","\xc7","\xc8","\xc9","\xca","\xcb",
"\xcc","\xcd","\xce","\xcf","\xd0","\xd1","\xd2","\xd3","\xd4","\xd5","\xd6",
"\xd7","\xd8","\xd9","\xda","\xdb","\xdc","\xdd","\xde","\xdf","\xe0","\xe1",
"\xe2","\xe3","\xe4","\xe5","\xe6","\xe7","\xe8","\xe9","\xea","\xeb","\xec",
"\xed","\xee","\xef","\xf0","\xf1","\xf2","\xf3","\xf4","\xf5","\xf6","\xf8",
"\xf9","\xfa","\xfb","\xfc","\xfd","\xfe",
);
//Tablice znakow diakrytycznych 
//dla kodowania iso-8859-2 (latin2)
//by tosiek - https://tosiek.pl/
$map2_latin2=array(
"\x41","\x4c","\x4c","\x53","\x53","\x53","\x53","\x54","\x5a","\x5a","\x5a",
"\x61","\x6c","\x6c","\x73","\x73","\x73","\x74","\x7a","\x7a","\x7a","\x52",
"\x41","\x41","\x41","\x41","\x4c","\x43","\x43","\x43","\x45","\x45","\x45",
"\x45","\x49","\x49","\x44","\x44","\x4e","\x4e","\x4f","\x4f","\x4f","\x4f",
"\x78","\x52","\x55","\x55","\x55","\x55","\x59","\x54","\x73\x73","\x72","\x61",
"\x61","\x61","\x61","\x6c","\x63","\x63","\x63","\x65","\x65","\x65","\x65",
"\x69","\x69","\x64","\x64","\x6e","\x6e","\x6f","\x6f","\x6f","\x6f","\x72",
"\x75","\x75","\x75","\x75","\x79","\x74",
);

Na pierwszy rzut oka nie są czytelne, lecz poniżej prezentuję ich wersję z której odradzam korzystać, ponieważ taki plik z poniższymi tablicami musi być bezwzględnie zapisany w kodowaniu iso-8859-2 (trzeba się pilnować), także do użytku niekomercyjnego:

$map_latin2=array(
'Ą','Ł','Ľ','Ś','§','Š','Ş','Ť','Ź','Ž','Ż',
'ą','ł','ľ','ś','š','ş','ť','ź','ž','ż','Ŕ',
'Á','Â','Ă','Ä','Ĺ','Ć','Ç','Č','É','Ę','Ë',
'Ě','Í','Î','Ď','Đ','Ń','Ň','Ó','Ô','Ő','Ö',
'×','Ř','Ů','Ú','Ű','Ü','Ý','Ţ','ß','ŕ','á',
'â','ă','ä','ĺ','ć','ç','č','é','ę','ë','ě',
'í','î','ď','đ','ń','ň','ó','ô','ő','ö','ř',
'ů','ú','ű','ü','ý','ţ',
);
//Tablice znakow diakrytycznych 
//dla kodowania iso-8859-2 (latin2)
//by tosiek - https://tosiek.pl/
$map2_latin2=array(
'A','L','L','S','S','S','S','T','Z','Z','Z',
'a','l','l','s','s','s','t','z','z','z','R',
'A','A','A','A','L','C','C','C','E','E','E',
'E','I','I','D','D','N','N','O','O','O','O',
'x','R','U','U','U','U','Y','T','ss','r','a',
'a','a','a','l','c','c','c','e','e','e','e',
'i','i','d','d','n','n','o','o','o','o','r',
'u','u','u','u','y','t',
);

Posiadając tablice znaków diakrytycznych możemy zamienić te znaki na ich odpowiedniki – funkcja str_replace(), lecz to nie jest całkowite przygotowanie adresów URL należy się także pozbyć znaków specjalnych, przestankowych i tym podobnych, które nie są obsługiwane w adresach. Tutaj wykorzystamy wyrażenia regularne (regular expressions) – funkcja preg_replace(), które zamienią każdy znak nie wchodzący w skład wyrazów na myślniki (-) lub podkreślniki – znaki podkreślenia (_), zależy kto jak woli, następnie musimy usunąć te znaki z początku i końca, wykorzystamy funkcję trim() z dodatkowym parametrem.

Ci którzy chcą by adresy były złożony tylko z małych liter muszą użyć funkcji strtolower()

Adresy URL – URI ze słowami kluczowymi

Wiec zaczynamy sobie pisać funkcję specialchar_latin2() która jako jedyny argument przyjmuje ciąg który przygotowuje do wyświetlenia adresu URL:

function specialchar_latin2($url) {
//specialchar_latin2 by tosiek https://tosiek.pl/
	global $map_latin2,$map2_latin2;
	$url = str_replace($map_latin2,$map2_latin2,$url);
	return $url;
}

Należy pamiętać by tablice ze znakami narodowymi były zdefiniowane poza – przed funkcją. Ciąg zażółć?gęślą !?jaźń;;\ZAŻÓŁĆ []GĘŚLĄ (JAŹŃ-- po przejściu przez tę funkcję będzie miał postać: zazolc?gesla !?jazn;;\ZAZOLC []GESLA (JAZN–, nie nadaje się do wykorzystania w adresie.
Jak na razie funkcja zamienia tylko znaki narodowe z tablic, dodajmy do niej wyrażenie regularne zamieniające wszystko co nie jest znakiem wchodzącym w skład słów i występujące jeden raz lub więcej na myślnik – (kto woli podkreślnik _), posłużymy się zdefiniowaną klasą negującą znaki wchodzące w skład słów \W

function specialchar_latin2($url) {
//specialchar_latin2 by tosiek https://tosiek.pl/
	global $map_latin2,$map2_latin2;
	$url = str_replace($map_latin2,$map2_latin2,$url);
	$url = preg_replace('#[\W]{1,}#','-',$url);
	return $url;
}

Teraz zamieniamy wszystko co zbędne (spacje, wykrzykniki, znaki zapytanie i tym podobne na myślniki. Ciąg zażółć?gęślą !?jaźń;;\ZAŻÓŁĆ []GĘŚLĄ (JAŹŃ-- po przejściu przez funkcję miałby postać: zazolc-gesla-jazn-ZAZOLC-GESLA-JAZN-, lecz jak widać pozostał myślnik na końcu, może także czasami pozostać na początku co jest całkowicie zbędne, użyjemy funkcji trim() do jego usunięcia:

function specialchar_latin2($url) {
//specialchar_latin2 by tosiek https://tosiek.pl/
	global $map_latin2,$map2_latin2;
	$url = str_replace($map_latin2,$map2_latin2,$url);
	$url = preg_replace('#[\W]{1,}#','-',$url);
	$url = trim($url,'-');
	return $url;
}

Teraz ciąg miałby postać: zazolc-gesla-jazn-ZAZOLC-GESLA-JAZN, a co jeśli byśmy chcieli by składał się z małych estetycznych liter? Wystarczy skorzystać z funkcji strtolower() zamieniającej wielkie litery na małe.

function specialchar_latin2($url) {
//specialchar_latin2 by tosiek https://tosiek.pl/
	global $map_latin2,$map2_latin2;
	$url = str_replace($map_latin2,$map2_latin2,$url);
	$url = preg_replace('#[\W]{1,}#','-',$url);
	$url = trim($url,'-');
	$url = strtolower($url);
	return $url;
}

Teraz otrzymujemy oczekiwany efekt zazolc-gesla-jazn-zazolc-gesla-jazn, zamienione znaki narodowe na ich odpowiedniki, spacje i inne znaki specjalne zamienione na myślniki (lub podkreślniki) oraz cały ciąg pisany mała czcionką bez wielkich liter. Taki ciąg można wykorzystać w adresie URL.

Bardzo przydatna rzecz do tworzenia przyjaznych adresów ze słowami kluczowymi. Oczywiście dla kodowania iso-8859-2, które niestety nadal jest w użyciu.

Funkcja specialchar_latin2() w ostatecznej wersji:

$map_latin2=array(
	"\xa1","\xa3","\xa5","\xa6","\xa7","\xa9","\xaa","\xab","\xac","\xae","\xaf",
	"\xb1","\xb3","\xb5","\xb6","\xb9","\xba","\xbb","\xbc","\xbe","\xbf","\xc0",
	"\xc1","\xc2","\xc3","\xc4","\xc5","\xc6","\xc7","\xc8","\xc9","\xca","\xcb",
	"\xcc","\xcd","\xce","\xcf","\xd0","\xd1","\xd2","\xd3","\xd4","\xd5","\xd6",
	"\xd7","\xd8","\xd9","\xda","\xdb","\xdc","\xdd","\xde","\xdf","\xe0","\xe1",
	"\xe2","\xe3","\xe4","\xe5","\xe6","\xe7","\xe8","\xe9","\xea","\xeb","\xec",
	"\xed","\xee","\xef","\xf0","\xf1","\xf2","\xf3","\xf4","\xf5","\xf6","\xf8",
	"\xf9","\xfa","\xfb","\xfc","\xfd","\xfe",
);
//Tablice znakow diakrytycznych 
//dla kodowania iso-8859-2 (latin2)
//by tosiek - https://tosiek.pl/
$map2_latin2=array(
	"\x41","\x4c","\x4c","\x53","\x53","\x53","\x53","\x54","\x5a","\x5a","\x5a",
	"\x61","\x6c","\x6c","\x73","\x73","\x73","\x74","\x7a","\x7a","\x7a","\x52",
	"\x41","\x41","\x41","\x41","\x4c","\x43","\x43","\x43","\x45","\x45","\x45",
	"\x45","\x49","\x49","\x44","\x44","\x4e","\x4e","\x4f","\x4f","\x4f","\x4f",
	"\x78","\x52","\x55","\x55","\x55","\x55","\x59","\x54","\x73\x73","\x72","\x61",
	"\x61","\x61","\x61","\x6c","\x63","\x63","\x63","\x65","\x65","\x65","\x65",
	"\x69","\x69","\x64","\x64","\x6e","\x6e","\x6f","\x6f","\x6f","\x6f","\x72",
	"\x75","\x75","\x75","\x75","\x79","\x74",
);
function specialchar_latin2($url) {
//specialchar_latin2 by tosiek https://tosiek.pl/
	global $map_latin2,$map2_latin2;
	$url = str_replace($map_latin2,$map2_latin2,$url);
	$url = preg_replace('#[\W]{1,}#','-',$url);
	$url = trim($url,'-');
	$url = strtolower($url);
	return $url;
}

Życzę miłego tworzenia przyjaznych adresów dla wyszukiwarek i użytkowników (wiesz w co klikasz widząc sam link).

usuwanie polskich znaków php

usuwanie polskich znaków diakrytycznych php

Często zachodzi potrzeba zastąpienia polskich znaków diakrytycznych takich jak:ą, ć, ę, ł, ń, ó, ś, ź, ż, Ą, Ć, Ę, Ł, Ń, Ó, Ś, Ź, Ż ich odpowiednikami bez ogonków (graficzne odpowiedniki): a, c, e, l, n, o, s, z, z, A, C, E, L, N, O, S, Z, Zposłuży nad do tego prosta funkcja remove_pl która jest niezależna od kodowania i udostępnia usuwanie polskich znaków z tablic jak i stringów. Usuwa także polskie znaki z kluczy tablicy jak i wartości. Może usuwać polskie znaki z trzech kodowań:
  • UTF-8 (utf8)
  • ISO-8859-2 (latin2)
  • Windows-1250 (cp1250 )
a oto ta funkcja:
function remove_pl($text,$from) {
//remove_pl by tosiek - https://tosiek.pl/
	if($from == 'utf8') {
		$from = array(
			"\xc4\x85", "\xc4\x87", "\xc4\x99",
			"\xc5\x82", "\xc5\x84", "\xc3\xb3",
			"\xc5\x9b", "\xc5\xba", "\xc5\xbc",
			"\xc4\x84", "\xc4\x86", "\xc4\x98",
			"\xc5\x81", "\xc5\x83", "\xc3\x93",
			"\xc5\x9a", "\xc5\xb9", "\xc5\xbb",
		);
	}elseif($from == 'latin2') {
		$from = array(
			"\xb1", "\xe6", "\xea",
			"\xb3", "\xf1", "\xf3",
			"\xb6", "\xbc", "\xbf",
			"\xa1", "\xc6", "\xca",
			"\xa3", "\xd1", "\xd3",
			"\xa6", "\xac", "\xaf", 
		);
	}elseif($from == 'cp1250') {
		$from = array(
			"\xb9", "\xe6", "\xea",
			"\xb3", "\xf1", "\xf3",
			"\x9c", "\x9f", "\xbf",
			"\xa5", "\xc6", "\xca",
			"\xa3", "\xd1", "\xd3",
			"\x8c", "\x8f", "\xaf",
		);
	}
	$clear = array(
		"\x61", "\x63", "\x65",
		"\x6c", "\x6e", "\x6f",
		"\x73", "\x7a", "\x7a",
		"\x41", "\x43", "\x45",
		"\x4c", "\x4e", "\x4f",
		"\x53", "\x5a", "\x5a",
	);
	if(is_array($text)) {
		foreach($text as $key => $value) {
			$array[str_replace($from, $clear, $key)]= str_replace($from, $clear, $value);
		}
		return $array;
	}else {
		return str_replace($from, $clear, $text);
	}
}
Wywołanie funkcji dla UTF-8
$string = 'ą, ć, ę, ł, ń, ó, ś, ź, ż, Ą, Ć, Ę, Ł, Ń, Ó, Ś, Ź, Ż';
$no_pl = remove_pl($string, utf8);
echo $no_pl;
Wywołanie funkcji dla ISO-8859-2
$string = 'ą, ć, ę, ł, ń, ó, ś, ź, ż, Ą, Ć, Ę, Ł, Ń, Ó, Ś, Ź, Ż';
$no_pl = remove_pl($string, latin2);
echo .$no_pl;
Wywołanie funkcji dla Windows-1250
$string = 'ą, ć, ę, ł, ń, ó, ś, ź, ż, Ą, Ć, Ę, Ł, Ń, Ó, Ś, Ź, Ż';
$no_pl = remove_pl($string, cp1250);
echo $no_pl;
W każdym wypadku funkcja zwróci nam:a, c, e, l, n, o, s, z, z, A, C, E, L, N, O, S, Z, Z

Usuwanie polskich znaków online

Możesz tutaj wkleić dowolny kod z polskimi znakami i kliknij przycisk Usuń polskie znaki, wszystkie polskie znaki zostaną zmienione na język polskawy (wszelkie ogonki, kreseczki i tym podobne zostaną zamienione na znak bez ozdobników np. Ń na N)




?>