(PHP 4, PHP 5, PHP 7, PHP 8)
utf8_encode — ISO-8859-1 dizgeyi UTF-8'e dönüştürür
Bu işlevin kullanımı PHP 8.2.0 itibariyle ÖNERİLMEMEKTEDİR. Bu işleve kesinlikle güvenilmemelidir.
Belirtilen ISO-8859-1
dizge
yi UTF-8
'e dönüştürür.
Bilginize:
Bu işlev, belirtilen dizgenin geçerli kodlamasını tahmin etmeye çalışmaz, bunun ISO-8859-1 ("Latin 1" olarak da bilinir) olarak kodlandığını varsayar ve UTF-8'e dönüştürür. Her bayt dizisi geçerli bir ISO-8859-1 dizesi olduğundan, bu hiçbir zaman bir hataya yol açmaz, ancak farklı bir kodlama istendiğinde yararlı bir dizgeyle sonuçlanmaz.
ISO-8859-1
karakter kodlamasını kullanıyor olarak imlenmiş birçok sayfa aslında benzeri olanWindows-1252
kodlamasını kullanır ve tarayıcılarISO-8859-1
kodlu sayfalarıWindows-1252
olarak yorumlar.Windows-1252
, belirliISO-8859-1
kontrol karakterleri yerine Euro imi (€
) ve kıvrımlı tırnaklar (“
”
) gibi ek yazdırılabilir karakterlere sahiptir. Bu işlev, bu türWindows-1252
karakterlerini doğru şekilde dönüştürmeyecektir.Windows-1252
dönüştürme gerekiyorsa farklı bir işlev kullanılmalıdır.
dizge
ISO-8859-1 ile kodlanmış bir dizge.
Belirtilen dizge
dizgesinin UTF-8 gösterimini döndürür.
Örnek 1 - Temel örnek
<?php
// 'Zoë' dizgesini ISO 8859-1'den UTF-8'e dönüştürür
$iso8859_1_string = "\x5A\x6F\xEB";
$utf8_string = utf8_encode($iso8859_1_string);
echo bin2hex($utf8_string), "\n";
?>
Yukarıdaki örneğin çıktısı:
5a6fc3ab
Sürüm: | Açıklama |
---|---|
8.2.0 | Bu işlevin kullanımı artık önerilmiyor. |
7.2.0 | Bu işlev XML eklentisinden PHP çekirdeğine taşınmıştır. Önceki sürümlerde sadece XML eklentisi kurulduğunda kullanılabiliyordu. |
Bilginize: Kullanımdan kaldırma ve seçenekler
Bu işlevin PHP 8.2.0 ve sonrasında kullanımı önerilmiyor ve gelecek sürüede kullanımdan kaldırılacaktır. Mevcut kullanımlar gözden geçirilmeli ve uygun seçeneklerle değiştirilmelidir.
Benzer işlevsellik, ISO-8859-1 ve diğer birçok karakter kodlamasını destekleyen mb_convert_encoding() ile elde edilebilir.
<?php
$iso8859_1_string = "\xEB"; // ISO-8859-1 'ë' (iki noktalı e)
$utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";
$iso8859_7_string = "\xEB"; // ISO-8859-7'de aynı dizge: 'λ' (Yunanca küçük harfli lambda)
$utf8_string = mb_convert_encoding($iso8859_7_string, 'UTF-8', 'ISO-8859-7');
echo bin2hex($utf8_string), "\n";
$windows_1252_string = "\x80"; // '€' (Euro imi) Windows-1252'de var, ISO-8859-1'de yok
$utf8_string = mb_convert_encoding($windows_1252_string, 'UTF-8', 'Windows-1252');
echo bin2hex($utf8_string), "\n";
?>Yukarıdaki örneğin çıktısı:
c3ab cebb e282acKurulu eklentilere bağlı olarak mevcut olabilecek diğer seçenekler şunlardır: UConverter::transcode() ve iconv().
Aşağıdakilerin tümü aynı sonucu verir:
<?php
$iso8859_1_string = "\x5A\x6F\xEB"; // ISO-8859-1 'Zoë'
$utf8_string = utf8_encode($iso8859_1_string);
echo bin2hex($utf8_string), "\n";
$utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";
$utf8_string = UConverter::transcode($iso8859_1_string, 'UTF8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";
$utf8_string = iconv('ISO-8859-1', 'UTF-8', $iso8859_1_string);
echo bin2hex($utf8_string), "\n";
?>Yukarıdaki örneğin çıktısı:
5a6fc3ab 5a6fc3ab 5a6fc3ab 5a6fc3ab