utf8_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

utf8_encodeISO-8859-1 dizgeyi UTF-8'e dönüştürür

Uyarı

Bu işlevin kullanımı PHP 8.2.0 itibariyle ÖNERİLMEMEKTEDİR. Bu işleve kesinlikle güvenilmemelidir.

Açıklama

utf8_encode(string$dizge): string

Belirtilen ISO-8859-1dizgeyi 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 olan Windows-1252 kodlamasını kullanır ve tarayıcılar ISO-8859-1 kodlu sayfaları Windows-1252 olarak yorumlar. Windows-1252, belirli ISO-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ür Windows-1252 karakterlerini doğru şekilde dönüştürmeyecektir. Windows-1252 dönüştürme gerekiyorsa farklı bir işlev kullanılmalıdır.

Bağımsız Değişkenler

dizge

ISO-8859-1 ile kodlanmış bir dizge.

Dönen Değerler

Belirtilen dizge dizgesinin UTF-8 gösterimini döndürür.

Örnekler

Ö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 Bilgisi

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.

Notlar

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 e282ac

Kurulu 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

Ayrıca Bakınız

To Top