#22415 [Fbk->Opn]: strtolower()
| From: | admin at naxe dot net | Date: | Tue, 25 Feb 2003 14:58:51 +0000 |
| Subject: | #22415 [Fbk->Opn]: strtolower() | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-34226@lists.php.net to get a copy of this message | ||
ID: 22415
User updated by: admin at naxe dot net
Reported By: admin at naxe dot net
-Status: Feedback
+Status: Open
Bug Type: Strings related
Operating System: Linux Red Hat v7.3
PHP Version: 4.3.0
New Comment:
Hi, thanks for your replies.
As you can see on my phpinfo() I have this environment setting:
LANG it_IT@euro
I think it was from the Red Hat v7.3 installation.
I tested the script, as you suggested, with LANG=C (the same language
settings that I have on the other server) and it works.
But I think that this behaviour is still very strange, why my setting
of it_IT will produce this problem: strtolower(chr(180)) results in
chr(184)?
I think this is an important issue for code portability.
Thanks.
Previous Comments:
------------------------------------------------------------------------
[2003-02-25 08:24:28] moriyoshi@php.net
And also try inserting
setlocale(LC_CTYPE, "C");
on top of your script.
------------------------------------------------------------------------
[2003-02-25 08:20:41] moriyoshi@php.net
strtolower's behaviour depends on the locale settings (LC_CTYPE), and
the settings are different on each server,
so the reported behaviour seems to be quite expectable for me. Setting
LANG=C would solve your problem?
------------------------------------------------------------------------
[2003-02-25 08:18:31] hholzgra@php.net
from the manual page on strtolower:
"Note that 'alphabetic' is determined by the current locale. "
are you sure that this is not just a locale settings problem?
------------------------------------------------------------------------
[2003-02-25 08:05:45] admin at naxe dot net
Hi,
I make massive use of PHP so I tested many times before report this
that I think is a bug:
This is the example script:
$ch=chr(180);
echo $ch;
echo strtolower($ch);
echo strtoupper($ch);
The result will be this: ´¸´ instead of this: ´´´
This bug seems that occur only with PHP v4.3.0, I tested it also with
PHP v4.2.2 ad it was ok.
I uploaded the script on two different server of mine:
http://www.dez.it/test/strtolower.php here with
PHP v4.2.2
(http://www.dez.it/test/phpinfo.php for phpinfo)
http://www.postare.it/test/strtolower.php
here with PHP v4.3.0
(http://www.postare.it/test/phpinfo.php for phpinfo)
As said the first link works ok, the seconds has this strange
behaviour, it modify chr(180) to chr(184). I haven't tested with all
the ascii set.
I hope this report was useful.
Good debug.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=22415&edit=1