Aslında bu aşağı URL kodlanmış nasıl sorununa çalışır. Üzerinde standart bir yolu yoktur gibi belirli bir sayfadaki bir bağlantıyı tıklayarak ediyorsanız tarayıcı isteği gönderdiği sayfanın kodlamasını kullanır ama sizin tarayıcınızın adres çubuğuna doğrudan URL girerseniz davranış şekilde undefined (Firefox sağlayan bir about:config UTF-8 kodlanmış URL'leri kullanmaya geçiş) kullanmak için kodlama.
Bazı kodlama algılama kullanmanın yanı sıra verilen isteği URL ile kullanılan kodlama bilmek için hiçbir yolu yoktur.
EDIT:
Sadece yedekleme için yukarıda ne dedi, ben (benim durumumda çalışan Mac OS X - IE durumunda Parallels ile Windows Vista) beş büyük tarayıcıların varsayılan davranışını gösteren küçük bir test script yazdı:
$p = $_GET['p'];
for ($i = 0; $i < strlen($p); $i++) {
// this displays the binary data received via the URL in hex format
echo dechex(ord($p[$i])) . ' ';
}
http://path/to/script.php?p=äöü yol açar çağırıyor
- Safari (4.0.5):
c3 a4 c3 b6 c3 bc
- Firefox (3.6.3):
c3 a4 c3 b6 c3 bc
- Google Chrome (5.0.375.38):
c3 a4 c3 b6 c3 bc
- Opera (10.10):
e4 f6 fc
- Internet Explorer (8.0.6001.18904):
e4 f6 fc
Yani belli ki ilk üç kullanım UTF-8 kodlanmış URL'leri Opera ve IE ISO-8859-1 veya türevleri bazı kullanırken. Conclusion: Bir URL yoluyla gönderilen metinsel veri kodlama ne emin olamaz.