Edit report at http://bugs.php.net/bug.php?id=54315&edit=1
ID: 54315 User updated by: sms at inbox dot ru Reported by: sms at inbox dot ru Summary: Some string functions doesn't work as expected with cyrillic characters -Status: Feedback +Status: Open Type: Bug Package: Strings related Operating System: Windows 7 PHP Version: 5.3.6 Block user comment: N Private report: N New Comment: setlocale(LC_ALL, 'russian') solved the problem. Thanks! Previous Comments: ------------------------------------------------------------------------ [2011-03-19 13:39:01] paj...@php.net ok, that confirms what I was suspecting. What happens is that setlocale is now actually working. As in really set the Locale, per thread, instead of per process (most likely on request or server initializations). It most likely worked because your system local is set correctly. Please try using the correct Locale ID (see the msdn link to get the right one for Russia). ------------------------------------------------------------------------ [2011-03-19 13:33:11] sms at inbox dot ru In 5.3.5 these functions work as expected even without setlocale(). I tried setlocale() after this problem was found. I use Apache 2.2.17 (downloaded @ http://www.apachelounge.com/download/) and php as a module (php5apache2_2.dll) Just checked CLI - functions work fine ------------------------------------------------------------------------ [2011-03-19 13:04:34] paj...@php.net ru_RU would not work reliably before (or now) as it is not a recognized locale. See the links on the setlocale documentation page for a list of the available locale (and cp). However, the only change in 5.3.6 is that the Locale related APIs are not per thread instead of per process. Making them thread safe and avoid many possible crashes. Which web server and SAPI do you use? Can you try this code using CLI (cmd line) too? ------------------------------------------------------------------------ [2011-03-19 12:58:50] sms at inbox dot ru I had to go back to 5.3.5 where these functions work as expected. 5.3.6 breaks existing and working scripts ------------------------------------------------------------------------ [2011-03-19 12:40:23] paj...@php.net Please see the note about Windows and Locale strings at http://www.php.net/setlocale For a portable and reliable locale support, I would suggest to move to intl, http://www.php.net/intl ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/bug.php?id=54315 -- Edit this bug report at http://bugs.php.net/bug.php?id=54315&edit=1