Eğer zaten UTF8 dize utf8_encode () uygularsanız o bozuk bir UTF8 çıktı dönecektir.
Tüm bu sorunları gideren bir işlev yaptı. Bu Kodlama :: toUTF8 () denir.
Sen dizeleri kodlama ne olduğunu bilmek gerekmez. Bu Latin1 (iso 8859-1), Windows 1252 veya UTF8 veya dize bunların bir karışımı olabilir olabilir. Kodlama :: toUTF8 () UTF8 için her şeyi dönüştürmek olacaktır.
Bir hizmet, aynı dizede bu kodlamaları karıştırma, bana bütün berbat bir veri beslemesi veriyordu çünkü ben yaptım.
Kullanımı:
$utf8_string = Encoding::toUTF8($mixed_string);
$latin1_string = Encoding::toLatin1($mixed_string);
Ben başka bir işlevi, kodlama :: fixUTF8 () dahil ettik, wich UTF8 birden çok kez içine kodlanmış olmanın bozuk ürünü görünüyor her UTF8 dizesi çözecektir.
Kullanımı:
$utf8_string = Encoding::fixUTF8($garbled_utf8_string);
Örnekler:
echo Encoding::fixUTF8("Fédération Camerounaise de Football");
echo Encoding::fixUTF8("Fédération Camerounaise de Football");
echo Encoding::fixUTF8("FÃÂédÃÂération Camerounaise de Football");
echo Encoding::fixUTF8("Fédération Camerounaise de Football");
çıktısı:
Fédération Camerounaise de Football
Fédération Camerounaise de Football
Fédération Camerounaise de Football
Fédération Camerounaise de Football
İndir:
https://github.com/neitanod/forceutf8