notatnik.net.pl

PHP: Zmiana kodowania znaków

Sobota, 16.07.2016

Czasami, jeśli tworzymy nową wersję strony, z innym kodowaniem znaków niż dotychczas, musimy skonwertować zawartość z bazy danych do nowego kodowania. Zmianę taką umożliwia nam język PHP.

Aby skonwertować tekst do innego zestawu znaków korzystamy z funkcji iconv(); Posiada ona trzy parametry: kodowanie oryginalne, kodowanie docelowe oraz tekst do skonwertowania. Wszystkie parametry są typu string. string iconv (string $zestaw_wejściowy, string $zestaw_docelowy, string $łańcuch) Jeżeli zmienna $zm zawiera tekst z kodowaniem ISO-8859-2 a chcemy go zamienić na UTF-8, wówczas użycie funkcji będzie wyglądało następująco: $zm = iconv("ISO-8859-2", "UTF-8", $zm); Jeżeli nie znamy oryginalnego kodowania tekstu możemy skorzystać z funkcji: mb_detect_encoding($string); Nasz przykład będzie wtedy wyglądał następująco: $zm = iconv(mb_detect_encoding($zm), "UTF-8", $zm); Powyższy sposób możemy wykorzystać nie tylko przy pobieraniu danych z bazy, ale również z plików, czy innych źródeł danych.

Zobacz też:

PHP, MySQL: Wymuszenie kodowania znaków z bazy danych