Re: json_encode() and non-UTF8 strings
| From: | Laruence | Date: | Tue, 03 Apr 2012 07:50:23 +0000 |
| Subject: | Re: json_encode() and non-UTF8 strings | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-59341@lists.php.net to get a copy of this message | ||
On Tue, Apr 3, 2012 at 9:46 AM, Rasmus Lerdorf <rasmus@lerdorf.com> wrote:
> On 04/02/2012 06:35 PM, Charlie Somerville wrote:
>> Hi internals,
>>
>> I've created a pull request (https://github.com/php/php-src/pull/33) that changes
>> json_encode to fall back to ASCII for strings that are not valid UTF-8.
>>
>> I ran into an issue in a production application involving PayPal IPN callbacks (which are
>> sent encoded as windows-1252) and json_encode(). If there was an accented character present in the
>> data, json_encode() would fail to encode the string and serialize it as 'null'.
>>
>> I've modified the behaviour of the underlying json_escape_string() implementation to
>> attempt to encode strings anyway while still producing a warning.
>
> JSON with non-Unicode strings is no longer JSON. The spec is explicit
> that all strings must be Unicode. The default encoding is UTF-8, but it
> could be UTF-16/32 as well.
agree, allowing json code in no-utf8 charset is a wrong way.
especially in json-rpc, it will make things mess..
thanks
>
> See http://www.ietf.org/rfc/rfc4627.txt
>
> -Rasmus
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
--
Laruence Xinchen Hui
http://www.laruence.com/