[RFC] Locale-independent case conversion
| From: | Tim Starling | Date: | Thu, 23 Sep 2021 06:31:48 +0000 |
| Subject: | [RFC] Locale-independent case conversion | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-116141@lists.php.net to get a copy of this message | ||
Please consider my RFC for locale-independent case conversion.
https://wiki.php.net/rfc/strtolower-ascii
https://github.com/php/php-src/pull/7506
The RFC and associated PR ended up going some way beyond the original
scope, because for consistency, it's best if everything has the same
concept of case folding. I saw this as an opportunity to clean up a
common kind of locale-dependence in PHP which was previously inconsistent.
So not only will strtolower() and strtoupper() become
locale-independent, converting only ASCII, but also stristr, stripos,
strripos, lcfirst, ucfirst, ucwords, str_ireplace, the array sorting
functions with SORT_FLAG_CASE, and array_change_key_case.
Also, I changed a number of internal functions to use ASCII case
folding, giving rise to a range of effects in callers throughout the
core tree. The effects are all documented in the RFC.
I am proposing that locale-sensitive case conversion be provided with
the new names ctype_tolower() and ctype_toupper(). Those names might
seem odd at first glance, but they are wrappers for functions in
ctype.h and work in a very similar way to the rest of the ctype extension.
-- Tim Starling