UTF-8 Unicode bir kodlama, bir bayt (beton) dizisi olarak Unicode karakter (soyut) dizisini temsil eden bir yoludur. UTF-16 gibi diğer kodlamaları, (endian-büyük ve küçük-endian türevleri hem de olan) vardır. Ne olursa olsun hangi birini seçin bütün dilleri destekleyebilir böylece UTF-8 ve UTF-16, hem Unicode her karakteri temsil edebilir.
Sadece bir bayt ASCII karakterleri temsil beri metnin çoğu Batı dillerinde ise UTF-8 yararlıdır, ancak Çince gibi "yabancı" alfabe birçok karakter için üç bayt her gerekiyor. UTF-16, diğer taraftan, hiç (bazı çok ezoterik karakterler olsa da, Unicode en "Basic Multilingual Plane" dışında olanlar, dört gerektiren) karşılaşmak olasıdır tüm karakterler için tam iki bayt kullanır.
Gerçekten düzgün Unicode desteği vermez çünkü olsa da, uluslararası yazılım geliştirme için PHP kullanarak tavsiye etmem. It has bazı Unicode kodlamaları (multibyte string işlevlerine bakıyoruz), ancak bayt karakter değil gibi PHP çekirdek davranır dizeleri ile çalışan, yani standart PHP string fonksiyonları çalışmak için uygun değildir fonksiyonlarının eklenti Birden fazla byte olarak kodlanmış karakterler ile. Eğer karakterin UTF-8 gösterimini içeren bir dize üzerinde PHP'nin strlen()
ararsanız bu karakter UTF-8 üç bayt alır çünkü Örneğin, "大", o olsa bile, 3. dönecektir tek bir karakter. Gibi dize bölme işlevlerini kullanarak substr()
istikrarsız olduğu için bir multi-byte karakteri bozuk dize ortasında bölünmüş eğer.
Java, C #, ve Python gibi web geliştirme için kullanılan çoğu başka diller, yerleşik Unicode desteği, siz onları temsil etmek için kullanılır hangi kodlama konusunda endişelenmenize gerek bir dizeye rasgele Unicode karakter koymak ve böylece bellek çünkü sizin bakış bir dize karakterleri, değil bayt içerir. Bu Unicode metin ile çalışmak için çok daha güvenli, daha az hata eğilimli bir yoldur. Bu ve diğer sebeplerden dolayı (PHP gerçekten büyük bir dil değil), ben başka bir şey kullanmanızı tavsiye ediyorum.
(PHP 6 uygun Unicode desteği var olacağını okudum, ama bu henüz mevcut değil.)