2016-12-01 4 views
-2

Hy, у меня есть этот PHP код для телеграмм бота:Php кодирование символов для телеграммы бота

header("Content-Type: application/json"); 
    $parameters = array('chat_id' => $chatId, "text" => '' .$temp.'°C'); 
    $parameters["method"] = "sendMessage"; 
    echo json_encode($parameters); 

Проблемой является кодированием продукции, это будет & града C, мне нужен ° C.
Если я использую °, код не работает.

+1

«код не работает» не является достаточным описание проблемы. – PeeHaa

+0

@PeeHaa, если я использую °, бот не покажет никакого сообщения. Если я использую & deg; бот-шоу, например: 5.9 & deg; – Geme

+0

Пробовал ли вы это с флагом 'JSON_UNESCAPED_UNICODE'? – PeeHaa

ответ

0

решаемые с этим кодом:

header("Content-Type: application/json; charset=utf-8', true,200"); 
    $parameters = array('chat_id' => $chatId, "text" => '' .$temp.'°C'); 
    $parameters["method"] = "sendMessage"; 
$parameters = array_map('utf8_encode', $parameters); 
echo json_encode($parameters); 
+1

Если 'utf8_encode' работает для вас, это просто означает, что исходные данные не были закодированы в UTF-8, а ISO-8859-1. Просто сохраните исходный код как UTF-8 в текстовом редакторе, используйте '' ° C ''как есть, и ваш исходный код будет работать. – deceze

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