2015-11-15 5 views
1

Я уже несколько часов стуча головой в стену, я все еще не мог понять проблему. У меня есть ассоциативный массив, и когда я пытаюсь построить с ним запрос, он показывает странные символы в браузере.Странная проблема с кодировкой в ​​PHP

$reportVars = [ 
      "__report" => "alpha", 
      "start_date" => "2001", 
      "end_date" => "2002", 
      "dsp_id" => "SPP", 
      "current_sp_id" => "SPP_1", 
      "sp_name" => "fawzan" 

     ]; 

print_r(http_build_query($reportVars)); 

Это выход я получаю в браузере

__report=alpha&start_date=2001&end_date=2002&dsp_id=SPP¤t_sp_id=SPP_1&sp_name=fawzan 

Примечание странный характер (¤) на выходе после SPP, Прежде чем спросить Нет, я не копировать его из любой точки мира , Я просто набрал его голыми руками.

Может ли кто-нибудь помочь мне здесь?

+0

Попробуйте изменить последовательность переменных? PLZ сказать мне, если он делает любой diff –

+0

Я пробовал это также. Я переместил current_sp_id вокруг, Не повезло:/ – Fawzan

+0

Это происходит для current_sp_id или любого слова после spp? –

ответ

3

& Curren преобразовывается в ¤

вы можете иметь несколько вариантов сейчас:

  1. Подведите current_sp_id к началу, делая его первой переменной, так что нет & перед ним

  2. использовать &amp в качестве разделителя вместо & только с использованием:

    print_r(http_build_query($reportVars, '', '& amp;'));

(удалить пробел между & и amp, добавил он, потому что он преобразуется в & только здесь).

P.S. php не вызывает эту проблему в соответствии с моим пониманием, это то, как ваш браузер обрабатывает & currend, вероятно, преобразовывая его в & curren; себя

Смежные вопросы