Bug #14655 Updated: ucwords failing randomly with international characters
ID: 14655
Updated by: venaas
Reported By: xtango@netcombbs.com.ar
Status: Open
Bug Type: Strings related
Operating System: Windows XP Pro (spanish)
PHP Version: 4.1.0
New Comment:
To me this sounds like a system problem. PHP only uses the
systems notion of upper and space. When the character
following the international character it is probably
because the international character is treated as a
space by the system (isspace() returning true). It's quite
weird that the results are not consistent. The PHP function
itself is quite straightforward, so I suspect the locale is
not the same every time, or that the systems isspace() and
possibly toupper() is broken. I can't say for sure though.
Previous Comments:
------------------------------------------------------------------------
[2001-12-21 22:32:30] xtango@netcombbs.com.ar
When using the ucwords() function with strings containing international characters, the function
will return incorrect values. The return value will be different every time the function is called.
I've seen bogus bug reports for this function so we have a slight chance for this to be yet
another bogus bug, but look at this:
echo setlocale(LC_ALL, "0");
Output:
LC_COLLATE=C;LC_CTYPE=Spanish_Argentina.1252;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=C
---
echo ucwords('ñáéíóúàèìòùäëïöü');
Output:
ÑáéíóúÀèìÒùäËïÖü
Output again (refresh button on browser):
ÑáÉíóúàèìòùäëïöÜ
Output again:
ÑáéíÓúàèìÒùäëïöÜ
etc. etc.
Now, if I do setlocale(LC_ALL, "spanish"), the restult is still the same.
I've noted that the problem is not the intl. char, but the char after that. This is,
ucwords("cañas") will return "Cañas" or "CañAs", randomly.
Scenario:
Windows XP Pro (spanish)
Apache 1.3.22
PHP 4.1.0
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=14655&edit=1
Thread (3 messages)