I http://www.example.com/?query = Траливали gibi (adres satırında) Firefox URL yazdığınızda, otomatik olarak http://www.example.com/?query=%D2%F0%E0%EB%E8%E2%E0%EB%E8 olarak kodlanmıştır.
Ama gibi URL http://www.example.com/#ajax_call?query = Траливали dönüştürülür değildir.
Böyle IE8 gibi diğer tarayıcılar hiç sorgu dönüştürmek yoktur.
Soru: Sorgu kodlanmış ise (PHP) algılamak nasıl? Bunu çözmek için?
Ben denedim:
$ Str = iconv ('cp1251', 'utf-8', urldecode ($ str));
$ Str = utf8_decode (urldecode ($ str));
$ Str = (urldecode ($ str));
many functions from http://php.net/manual/en/function.urldecode.php Nothing works.
Testi:
$ Str = $ _GET ['str'];
d ('% D2% F0% E0% EB% E8% E2% E0% EB% E8' == urldecode ('% D2% F0% E0% EB% E8% E2% E0% EB% E8'));
d ('% D2% F0% E0% EB% E8% E2% E0% EB% E8' == $ str);
d ('Траливали' == $ str);
d (urldecode ($ str));
d (utf8_decode (urldecode ($ str)));
! d ('% D2% F0% E0% EB% E8% E2% E0% EB% E8' == urlencode ($ str)); !
İade:
[false] [false] [false] ��������� ???? [true]
Bir çözüm bir tür: http://www.example.com / Траливали / - Bir url parçası olarak bir sorgu göndermek ve mod_rewrite ile ayrıştırmak.