#49588 [Bgs]: json_encode returns null for certain strings
| From: | scottmac@php.net | Date: | Fri, 18 Sep 2009 13:29:21 +0000 |
| Subject: | #49588 [Bgs]: json_encode returns null for certain strings | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-142518@lists.php.net to get a copy of this message | ||
ID: 49588
Updated by: scottmac@php.net
Reported By: fernando at consultorpc dot com
Status: Bogus
Bug Type: JSON related
Operating System: Linux/Mac OSX Leopard
PHP Version: 5.3.0
New Comment:
It only appears of display_errors is on though with 5.3.1+ you can also
detect it by looking at json_last_error()
Previous Comments:
------------------------------------------------------------------------
[2009-09-18 12:54:42] jani@php.net
PHP Warning: json_encode(): Invalid UTF-8 sequence in argument in
Command line code on line 1
------------------------------------------------------------------------
[2009-09-18 12:36:22] fernando at consultorpc dot com
Description:
------------
At my specific case, if a string contains an Euro symbol ( ),
json_encode will return null for that string.
It might also happens with other special characters.
Reproduce code:
---------------
<?php
$array = array(
'name' => htmlentities( 'My euro symbol .' )
);
var_dump( $array );
var_dump( json_encode( $array ) );
Expected result:
----------------
array(1) {
["name"]=>
string(29) "My euro symbol €."
}
string(13) "{"name":"My euro symbol €."}"
Actual result:
--------------
array(1) {
["name"]=>
string(29) "My euro symbol â?¬."
}
string(13) "{"name":null}"
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=49588&edit=1