powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вместо знаком препинания выводит проценты и цифры. Сокеты
12 сообщений из 12, страница 1 из 1
Вместо знаком препинания выводит проценты и цифры. Сокеты
    #38592866
Denchik58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот такой вот код:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<?php
	
	$fp = fsockopen("tcp://127.0.0.1", 3128, $errno, $errstr, 30);
	if (!$fp) {
    echo "ERROR: $errno - $errstr
\n";
} else {
	fwrite($fp, '{"jsonrpc":"2.0","id":"1346999224565","method":"Получить перечень услуг"}');
	while (!feof($fp)) {
		$data.=fread($fp,1024);
	}	
	echo $data;
	
	echo "<br/>";
	echo 'Norm';
}
	fclose($fp);

?>



Хочу просто получить строчку с результатом. Она как бы возвращается, но вместо всех скобок, запятых или кавычек возвращается код Ansi в виде: %22%, к примеру. То есть значения есть а между ними появляется последовательность из этих цифр и знаков %.
Кодировка одинаковая и на сервере и у меня в скрипте. Из за чего еще такое может быть?
...
Рейтинг: 0 / 0
Вместо знаком препинания выводит проценты и цифры. Сокеты
    #38592890
Denchik58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И кстати вместо русских букв такая же фигня
...
Рейтинг: 0 / 0
Вместо знаком препинания выводит проценты и цифры. Сокеты
    #38592899
Denchik58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Воспользовался этой функцией iconv(). НЕ помогло =(
...
Рейтинг: 0 / 0
Вместо знаком препинания выводит проценты и цифры. Сокеты
    #38592936
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denchik58,

urldecode ?
...
Рейтинг: 0 / 0
Вместо знаком препинания выводит проценты и цифры. Сокеты
    #38592955
Denchik58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
artas,
Точняк=)
В сочетании с iconv() все выводит как надо)
Благодарю
...
Рейтинг: 0 / 0
Вместо знаком препинания выводит проценты и цифры. Сокеты
    #38593079
Denchik58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А теперь возник вопрос по полученной строке=) Вот например имеется она у меня:


Код: php
1.
$l = '{"result":{"self_services":[{"id":2,"waiting":0,"service_name":"Услуга","priority":1,"flexy":false}],"postponed":[],"limit_remove":0,"shadow":{"id_old_service":2,"id_old_customer":1395396173806,"old_nom":2,"old_pref":"А","old_fin_time":"21.03.2014 13:07:42","old_cust_state":"STATE_FINISH"}},"jsonrpc":"2.0","id":"1395400946321"}';



Хочу декодировать эту строку, чтобы взять к примеру id. Делаю следующее:
Код: php
1.
2.
var_dump(json_decode($l));
	var_dump(json_decode($l, true));



В обоих случаях значения null.
Что я не так сделал?Может кто нибудь знает
...
Рейтинг: 0 / 0
Вместо знаком препинания выводит проценты и цифры. Сокеты
    #38593091
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторNULL is returned if the json cannot be decoded or if the encoded data is deeper than the recursion limit.
http://www.php.net/manual/en/function.json-decode.php

включи отображение ошибок.
...
Рейтинг: 0 / 0
Вместо знаком препинания выводит проценты и цифры. Сокеты
    #38593093
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вместо знаком препинания выводит проценты и цифры. Сокеты
    #38593107
Denchik58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал чтоб ошибоньки видно было. Сначала поругался на кодировку, поменял ее. Теперь говорит, что у меня некорректный json.
Хотя несколько раз все перепроверял, написал верно. Д и в этой утилите проверял, тоже ошибок нет: http://www.bodurov.com/JsonFormatter/
...
Рейтинг: 0 / 0
Вместо знаком препинания выводит проценты и цифры. Сокеты
    #38593109
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denchik58,

попробуйте ткую же строку без русских букв распарсить. А то на вид json коректная
...
Рейтинг: 0 / 0
Вместо знаком препинания выводит проценты и цифры. Сокеты
    #38593116
Denchik58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ренат,
Попробовал. Результат тот же.
...
Рейтинг: 0 / 0
Вместо знаком препинания выводит проценты и цифры. Сокеты
    #38593146
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denchik58,

Копайте в сторону utf8 -> BOM, ну а само решение проблемы очень простое
Код: php
1.
2.
3.
4.
// Строка в utf8
$l = '{"result":{"self_services":[{"id":2,"waiting":0,"service_name":"Услуга","priority":1,"flexy":false}],"postponed":[],"limit_remove":0,"shadow":{"id_old_service":2,"id_old_customer":1395396173806,"old_nom":2,"old_pref":"А","old_fin_time":"21.03.2014 13:07:42","old_cust_state":"STATE_FINISH"}},"jsonrpc":"2.0","id":"1395400946321"}';

var_dump(json_decode(substr($l,3)));
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вместо знаком препинания выводит проценты и цифры. Сокеты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]