Bir URL kullanmak için UTF8 metin dönüştürme

5 Cevap php

Ben olmayan ingilizce karakterleri görüntülemek için UTF8 kullanan uluslararası bir siteyi geliştiriyorum. Ben de öğe adını içerir dostu URL'ler kullanıyorum. Açıkçası ben URL olmayan İngilizce karakterler kullanamazsınız.

Bu dönüşüm için ortak uygulama çeşit var mı? Ben onları yerine edilmelidir ingilizce hangi karakterlerin emin değilim. Bazı (e è gibi) oldukça açıktır ama diğer karakterler I (SS gibi) aşina değilim.

5 Cevap

Ben normalde 'ASCII / / translite' seçeneği ile iconv() kullanın. Bu gibi girdi alır:

último año

ve çıktı üretir:

'ultimo a~no

Sonra tire ile beyaz boşluk yerine () preg_replace kullanın:

'ultimo-a~no

... Ve istenmeyen karakter kaldırın, örneğin

[^a-z0-9-]

Muhtemelen Arapça veya Çince ile yaramaz ama, İspanyolca, Fransızca veya Almanca ile çalışıyor.

Siz URL yolları UTF-8 kodlanmış verileri kullanabilirsiniz. Sadece Percent encoding (rawurlencode bakınız) ile ayrıca bunu kodlanmış gerekir:

// ß (U+00DF) = 0xC39F (UTF-8)
$str = "\xC3\x9F";
echo '<a href="http://en.wikipedia.org/wiki/'.rawurlencode($str).'">'.$str.'</a>';

Bu http://en.wikipedia.org/wiki/ß bir bağlantı yankılanacak. Modern tarayıcılar yerine UTF-8 bu karakterin yüzdesi kodlanmış temsil konum çubuğuna karakterini ß kendisini gösterecektir (%C3%9F).

UTF-8 ama sadece ASCII karakterleri kullanmak istemiyorsanız, ben çevirisini like Álvaro G. Vicario suggested kullanmanızı öneririm.

Açıkçası ben URL olmayan İngilizce karakterler kullanamazsınız.

Aslında, can. (PHP inşa) Wikipedia yazılım, bu destekler, örneğin en.wikipedia.org/wiki/☃.

Diğer yanıtlar gösterildiği gibi, uygun URL kodlamak için gereken dikkat edin.

rawurlencode URL için adınızı kodlamak için kullanın ve rawurldecode geri orijinal dize URL adı dönüştürmek için. Bu iki işlev RFC 1738 uygun URL'leri ve dizeleri dönüştürün.

Ben (yaklaşık bir hafta önce) Son kez, UTF-8 (özellikle japon) karakterleri herhangi bir ek kodlama olmadan URL'leri iyi çalıştı. Hatta doğru ben (Safari, Chrome ve Firefox, Mac tümü) ile test ve benim kız arkadaşım windows kullanarak ne tarayıcı hiçbir fikrim yok tüm tarayıcılarda adres barlarda baktı. Kenara en pencereler kurulumları ben onları görüntülemek için gerekli yazı tipleri eksikliği nedeniyle sadece japon karakterleri kareler gösteren rastlamak ettik, o da gayet iyi orada çalışmak gibi görünüyor.

Denedim URL: http://www.webghoul.de.private-void.net/cache/black-f-with - あい-50.png (KİS bu gibi görünmüyor)

Proof screenshot tarafından

Yani aslında ben belki Spec bir sürü gibi editörler hariç yönüyle iyi çalışıyor gördüğümüz için, spec tarafından izin verilmeyebilir ;-)

Ben aslında URL'leri bu tür karakterleri kullanarak tavsiye etmem, ama ben de "düzeltmek" için bir ilk öncelik yapmazdım.