niedziela,
PHP: Konwersja standardów kodowania
Tekst może być zapisany w różnych standardach kodowania znaków. Jak sobie z tym radzić?
Do takich celów służy wbudowana funkcja iconv(). W przykładzie prezentowana jest mniej typowa konwersja do 7-bitowego ASCII, co powoduje m.in. zastąpienie znaków narodowych do łacińskich odpowiedników. Proszę także zwrócić uwagę, co stało się z cudzysłowem.
Aby funkcja iconv() działała poprawnie, wymagane są właściwe ustawienia regionalne stąd funkcja setlocale(). Jak widać, w prezentowanym przypadku nie jest istotny kraj, tylko określony standard UTF-8.
$s1 = 'Heidenröslein, Röslein, morgenschön, lösen, Größe, Mädchen, Fuß, Söhne, Hölle, Öhr';
$s2 = 'Wół go pyta: „Panie chrząszczu, Po co pan tak brzęczy w gąszczu?”';
setlocale(LC_CTYPE, 'pl_PL.utf8');
echo $s1;
echo iconv("UTF-8", "ASCII//TRANSLIT", $s1);
echo $s2;
echo iconv("UTF-8", "ASCII//TRANSLIT", $s2);
Powyższa tabela to odnośniki do właściwych stron dokumentacji języka PHP.