Seldaek/jsonlint

multibyte character sets are not supported

aplab opened this issue · 7 comments

$json = '{
"test": "Информация о балансе на договоре по номеру телефона: возвращает количество найденых договоров, баланс, блокировку, номер договора, тип договора, игнорим расторгнутые договора."
}';
$parser = new JsonParser();
$parser->lint($json);
$data = $parser->parse($json);

What output do you get? I get this result which seems correct:

class stdClass#5 (1) {
  public $test =>
  string(323) "Информация о балансе на договоре по номеру телефона: возвращает количество найденых договоров, баланс, блокировку, номер договора, тип договора, игнорим расторгнутые договора."
}

win7 X64, php 5.4, apache 2.4
Apache :: Error 101 (net::ERR_CONNECTION_RESET

Can you run your test via command line php to get proper details as to what happens? Or maybe check your logs, because apache failing is pretty vague and could come from anywhere.

$json = '{
    "test": "Информация о балансе на договоре по номеру телефона: возвращает количество найденых договоров, баланс, блокировку, номер договора, тип договора, игнорим расторгнутые договора."
}';
$parser = new JsonParser();
$parser->lint($json);
$data = $parser->parse($json);
var_dump($data);

RESULT

c:\php>php D:\home\test.php
class stdClass#7 (1) {
  public $test =>
  string(323) "Информация о балансе на договоре по номеру телефона: возвращает количество найденых договоров, баланс, блокировку, номер договора, тип договора, игнорим расторгнутые договора."
}
�ланс, блокировку, номер договора, тип договора, игнорим расторгнутые договора."
}
��, игнорим расторгнутые договора."
}
�ые договора."
}
�ра."
}
}

Seems fine to me no? Just some weird lines after the var_dump output but I don't know if that's caused by your terminal copy..

I thought that the "substr" splits multibyte characters

no for that you should use mb_substr()