ID:               21708
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Open
 Bug Type:         Strings related
 Operating System: Win 2000 Pro Russian + SP2
 PHP Version:      4.3.0
 New Comment:

Hmm, you can use mb_convert_case() instead if mbstring extension is
enabled.

http://www.php.net/mb_convert_case



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

[2003-01-17 15:12:22] [EMAIL PROTECTED]

Thank's. I tried to do this. No effect. =(

I think it can be feature of PHP under Win32 ;-)

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

[2003-01-17 04:50:28] [EMAIL PROTECTED]

Try this:
setlocale(LC_CTYPE,"Russian.1251");

Windows locale string convension is different to *nix's.

See
http://msdn.microsoft.com/library/en-us/vccore98/html/_crt_language_and_country_strings.asp


for detail.


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

[2003-01-17 04:18:46] [EMAIL PROTECTED]

Code:
<?
setlocale(LC_ALL,"ru_RU.cp1251");
$str = "ÞËÀ";
echo ucwords(strtolower($str));
?>

Result:

Þëà

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

[2003-01-17 03:49:30] [EMAIL PROTECTED]

This bug only for Win32 =)

ucwords() function once again does not work properly with strings
containing international characters.

Thus, any character following the "þ"(ACSII code == 254) or "Þ"(ACSII
code == 222) letter will always be uppercase.

Code:

<? 
setlocale(LC_CTYPE,"ru_RU.cp1251"); 

$str[] = "ÏÐÎÑÒÎ"; 
$str[] = "ÒÞÐÜÌÀ"; 
$str[] = "ËþÁÎÂÍÈÊ"; 
$str[] = "ËÞÁÎÂÍÈÊ"; 
$str[] = "ËÓÁÎÂÍÈÊ =)"; 
$str[] = "ËÞÄÈ"; 
$str[] = "ëþäè"; 

for ($i=0;$i<sizeof($str);$i++) { 
    echo ucwords(strtolower($str[$i]))."<br>"; 
} 
?> 

Result:

Ïðîñòî 
ÒþÐüìà 
ËþÁîâíèê 
ËþÁîâíèê 
Ëóáîâíèê =) 
ËþÄè 
ËþÄè 


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


-- 
Edit this bug report at http://bugs.php.net/?id=21708&edit=1

Reply via email to