PHP UTF kodlu URL-string

0 Cevap php

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:

  1. $ Str = iconv ('cp1251', 'utf-8', urldecode ($ str));

  2. $ Str = utf8_decode (urldecode ($ str));

  3. $ Str = (urldecode ($ str));

  4. 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.

0 Cevap