Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:66876 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 66632 invoked from network); 31 Mar 2013 21:28:07 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 31 Mar 2013 21:28:07 -0000 Authentication-Results: pb1.pair.com header.from=keisial@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=keisial@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.212.173 as permitted sender) X-PHP-List-Original-Sender: keisial@gmail.com X-Host-Fingerprint: 209.85.212.173 mail-wi0-f173.google.com Received: from [209.85.212.173] ([209.85.212.173:43743] helo=mail-wi0-f173.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 6E/D6-20307-66AA8515 for ; Sun, 31 Mar 2013 16:28:07 -0500 Received: by mail-wi0-f173.google.com with SMTP id ez12so1117973wid.12 for ; Sun, 31 Mar 2013 14:28:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:message-id:date:from:user-agent:mime-version:to:cc :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=+JV6f+uUDwRhgkCjmfOnb0FCqkJXUMfWX2ghqiA7pAw=; b=BRDlFr9bg6/tHFYPofYB2qCaNIIKHrc/X/XlnOdcBeadHtZBFEapmEHx96+O83lujT a0WX15b55lytEP8+HLJ9dtRNOI4PlU5+aBxXqfCkpaFTNIqwaDORUUutNsnrgDmG7QWB LPMKjJWIsdsrcCa0cWVpYYF4FiEjOtvL1qglCDXQwzNYW9Wf6BpNKM9AQ4Xkxuv/67Y6 TJdbTUzkDtvzTGq4ia7B5Lz1Mtpz9t+vqihlt5/eEhwlBN1X5v6MOhQYa91BbteDUrg/ CtIOnCBDKXmmu53lmo7jY0BlJk78v9AAlI+VACU9hNAde/Um/oT0tAyWZVsr+RkA9JvW WPdQ== X-Received: by 10.194.121.6 with SMTP id lg6mr12723210wjb.22.1364765283893; Sun, 31 Mar 2013 14:28:03 -0700 (PDT) Received: from [192.168.1.26] (62.Red-83-55-231.dynamicIP.rima-tde.net. [83.55.231.62]) by mx.google.com with ESMTPS id gl11sm10277644wic.8.2013.03.31.14.28.01 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 31 Mar 2013 14:28:03 -0700 (PDT) Message-ID: <5158AA5F.2050305@gmail.com> Date: Sun, 31 Mar 2013 23:27:59 +0200 User-Agent: Thunderbird MIME-Version: 1.0 To: ALeX CC: PHP Internals References: <5157A55A.1070507@sugarcrm.com> <5157AD1D.3020606@sugarcrm.com> <5158847D.4080806@mrclay.org> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] Re: [lists.php] Re: [PHP-DEV] [RFC] more secure unserialize() From: keisial@gmail.com (=?UTF-8?B?w4FuZ2VsIEdvbnrDoWxleg==?=) On 31/03/13 23:18, ALeX wrote: >> JSON and serialize() are (inherently) different serialization formats with different use-cases [...] > Yes, and json requires that all strings (including the keys) has to be > valid utf-8, and I'm sure that's not always the case (serialize can > use binary data in both places). Yes, it is a problem. > var_dump(json_encode("\xe1 - \xc3\xa1")); > PHP Warning: json_encode(): Invalid UTF-8 sequence in argument in php > shell code on line 1 > string(4) "null" In a perfect world, all your input is utf-8, but sometimes what you get is in a different encoding... (and you still want to store it as-it-came in the first layer)