strtolower/upper a znaki PL

W tym artykule chciałem zwrócić uwagę na pewne funkcje podmieniające ciągi znaków.

Aby zamienić ciąg znaków na pisany małymi literami używamy funkcji strtolower($ciag).

Aby zamienić ciąg znaków na pisany dużymi literami używamy funkcji strtoupper($ciag).

Jednak w powyższych funkcjach występuje problem z kodowaniem wszystkich znaków PL (w przypadku zastosowania niektórych czcionek). Poniżej fragment kodu PHP do przetestowania:

rn

rn

$przyklad1="ęóąśłżźćń";
$przyklad2="ĘÓĄŚŁŻŹĆŃ";
echo strtoupper($przyklad1);
echo strtolower($przyklad2);
 
Wynik:
rn

rn

ęaąśłżUćń
?????????

rn

rnJeżeli u Ciebie też występuje taki problem użyj nowych funkcji PHP, które na tą przypadłość są "uodpornione", ponieważ podasz dodatkowy argument funkcji odpowiadający za kodowanie zamienianych znaków.

rn

Są to następujące funkcje:

mb_strtoupper($str,[$encoding])

przykład użycia: mb_strtoupper($przyklad1,'UTF-8');

mb_strtolower($str,[$encoding])

przykład użycia: mb_strtolower($przyklad2,'UTF-8');
 

rn

Przewijanie do góry