Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:117110 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 31414 invoked from network); 21 Feb 2022 17:29:40 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 21 Feb 2022 17:29:40 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 3EE64180511 for ; Mon, 21 Feb 2022 10:48:54 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,NICE_REPLY_A, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS8560 212.227.0.0/16 X-Spam-Virus: No X-Envelope-From: Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Mon, 21 Feb 2022 10:48:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1645469331; bh=4o2TQMqbRZMS+ikABdMr2XNTWU0OftrbbUvEPuzGZ9I=; h=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To; b=anqXEEmNRmNa3aHVlubyvEOD7eb2J8tXWFQTk0whGs6dFMRyQpAwd/phL3Rt2NES+ TpmhC+qwixytnrm97UrqRagnbWIg63TDIgZQAHn4TwD5n/oEnENwaOXMxYFk1/B56a Qc+0o6zsdXTr0ZMTKk9OMk5NRGRMqf8/H3gRzmIs= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.2.130] ([79.220.67.100]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mnpnm-1o1KvI3hXe-00pMCx; Mon, 21 Feb 2022 19:48:50 +0100 Message-ID: <270218e0-76f4-4c79-1820-957ce70ca1dd@gmx.de> Date: Mon, 21 Feb 2022 19:48:50 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Content-Language: de-DE To: Rowan Tommins , internals@lists.php.net References: <22242169-a16d-5261-696c-3cf00b00336a@gmail.com> <93e83a99-8f03-b823-1b4b-a10519d41dd7@gmail.com> <64095373-f73b-0231-dbd2-3b3271ab0e96@gmail.com> <20220221162953.GA26851@phcomp.co.uk> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:Gg4DDXOflUlKPj3Gx+Pz7SeRAKQEjfcpx+aYDcRIEBJ4wuBNcwu 9eTvTQ8XXXDmabrP0V9qMcO3+BXzgccT1UcwUdWYMb7jyCaVM7iRf/SPM/VvNa893/QoOB4 8jMINj58kG/DlQ56tWJVsTwOQtYgFiq0RUYrr/qbT2cxguq7pgTxUFmIE0fA7ac/GQcceiO DBZ9KbU67eA/MFbOzFbIQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:euqZdphyi+Q=:0Lgrgpka0vGch4XsFMtPss x7XqXL2xk7LSA+MdMs8zat81OlYjdFbxPbQTtCdS9BjV4TBl0S0AF6iXCwwZpGzEp30jZBQq1 2dacuOBN0snnqjWeCifIBAAyxoukz8+rpE8DK20hFBZ2NT/1ZiIoeXV2jwel9foR0amUTVFN6 bwVCwbP/hmdzBjYEXlevxzek5xvOHRivBRN9SIX+kaDRis9kwLguo2wj+rE8w5CtGsgjyreNz VCSXT90aFHoEOY8QfCygzx5SWPxSLPz3NuvPi7NOmZSeJUz9TyM/TmyaZIg4rV0bGaDRl9kqx pQEW381y+pfGZL+U9o9TKEHWdMFkvUO4100ObkA3Wn+8L3cnoJveNTYUx5mBIYVqtf+gojcA+ fzDh7fV4l4QhOCOQw8ehsk7d8/qdN15EB85SNw3igeprzYKgMbJNsVgyzAUZ08DTdm1C7ULqq bNstjUofQue+I97k/WCXirBIVVSgLjBGuFExodO3LTW3Yszr8cJh6IaBxgQ3zrZ5gQAqaME5s /D2hna4AT0TWllH81DT+N4Q0l/R3j84qKUOQHBinXH8Yaz9AQPn5oc4VtDHanx13frVAp9VgV WvCbW83jFf7CUZb2klPNKE2q/TA7BwOvgjd0AV4hVMdH9vehAemZU810oC58YB5WNKZ5Mw8QL +O4l7rSUAsz0zGFZ2T1iK3/Eucivv2ofwvzb7KXfAbx2QbuWx3DwTnb5HYGxbObs0m596x9OX Pk7EhFEzqar3cYX8XeQZSFy/JxbVxnsrtjUpOt3ES6XQTEBTG+UYEXEeXO2hMVRYjXlqlp69A krqjtl9meIXo1wtK9frwfZsar6Zhiucawt30PuQmIjj8BMv4HonMMF8uaNHMZ89/q0479KFXu kyLFLJxj8LlI1njlAwsk0YWxosOTl+M0UodTdD082izJpE6MKU2xFJahN31iTXFYB5ofr/BN9 mYnmZPLgGS74TBm4y2C9G4g34JyG8eS76Dop6J9Vccys6sLziVefSD3JExtxeb08LURQxklPe hpMQRvF2TxbwkKgGSg1GGV9sOllcVezbnW3LPxvjwIhlNDxWwRLfk9YXUu6mJnBOJk3N9FBOT 5k0T3Z1at1yats= Subject: Re: [PHP-DEV] [RFC] Deprecate and Remove utf8_encode and utf8_decode From: cmbecker69@gmx.de ("Christoph M. Becker") On 21.02.2022 at 18:35, Rowan Tommins wrote: > On 21/02/2022 16:29, Alain D D Williams wrote: > >> Looking at the description of grapheme_strlen() I note that it can >> return null. >> However it does not say why> > Huh, that feels like a bug to me, since it can also return false, which > is the more standard way of indicating failure. This is not the only function which returns null or false for different kinds of failures. > The obvious failure case is an input string that's not valid UTF-8, e.g. > grapheme_strlen("\xFF"). It appears that currently returns null; so I'm > not actually sure how you'd trigger the false case. false is returned, if the internal function grapheme_get_break_iterator() fails. I'm not sure under which circumstances that function may fail, but from looking at the code and the ICU documentation[1], it seems we're relying on functionality which is deprecated as of ICU 52; it's probably a good idea to adjust the code, and to possibly bump the ICU version requirements (currently, ICU >=3D 50.1 is required). [1] =2D- Christoph M. Becker