ID: 14655
Comment by: [EMAIL PROTECTED]
Old Reported By: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: Strings related
Operating System: Windows XP Pro (spanish)
PHP Version: 4.1.0
New Comment:

Some additional comments:

I cant reproduce this in Linux (meaning the returned data doesnt
change), but with PHP 4.1.1 in Window XP the problem exists, but only
when i change locale, my default locale is:

LC_COLLATE=C;LC_CTYPE=English_United
States.1252;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=C

and the output here is:
ÑÁéÍóúàèìòùäëÏöÜ

With linux:
Ñáéíóúàèìòùäëïöü


But if i change locale with:
setlocale(LC_ALL, "english");
(Locale: English_United States.1252)

The returned data differs at each function call


Previous Comments:
------------------------------------------------------------------------

[2001-12-23 15:51:45] [EMAIL PROTECTED]

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.



------------------------------------------------------------------------

[2001-12-21 22:32:30] [EMAIL PROTECTED]

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


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to