#46402 [Opn->Bgs]: Incorrect case convertions of native letters, after using setlocale

From: Date: Mon, 27 Oct 2008 13:39:11 +0000
Subject: #46402 [Opn->Bgs]: Incorrect case convertions of native letters, after using setlocale
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-1261@lists.php.net to get a copy of this message
ID: 46402 Updated by: jani@php.net Reported By: kvv at nightmail dot ru -Status: Open +Status: Bogus Bug Type: *Languages/Translation Operating System: FreeBSD 6.3 PHP Version: 5.2.6 New Comment: PHP 6 will be unicode aware (and already is). PHP 5 never will be. Please don't report same issues multiple times: Use the search BEFORE submitting bug reports!!! Previous Comments: ------------------------------------------------------------------------ [2008-10-27 13:18:25] kvv at nightmail dot ru Description: ------------ After setting script locale to ru_RU.UTF-8, behavior of functions strtoupper and atrtolower becomes unpredictable. Function setlocale, reports that encoding is setted to desired. But case conversion make no changes or change letters incorrectly (results may vary). Reproduce code: --------------- <?php header('Content-type: text/html; charset=utf-8'); $sL = 'àáâãä叿çèéêëìíîïðñòóôõö÷øùúûüýþÿ'; // lower russian alphabet, source file must be in utf-8 encoding $sU = 'ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞß'; // upper russian alphabet echo setlocale(LC_ALL, 'ru_RU.UTF-8') .'<br>'; echo 'Lower to upper:<br>'; echo strtoupper($sL) .'<br>'; // incorrect result echo mb_strtoupper($sL, 'utf-8') .'<br>'; // correct result, for comparsion echo 'Upper to lower:<br>'; echo strtolower($sU) .'<br>'; // incorrect result echo mb_strtolower($sU, 'utf-8') .'<br>'; // correct result, for comparsion ?> Expected result: ---------------- ru_RU.UTF-8 Lower to upper: ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞß ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞß Upper to lower: àáâãä叿çèéêëìíîïðñòóôõö÷øùúûüýþÿ àáâãä叿çèéêëìíîïðñòóôõö÷øùúûüýþÿ Actual result: -------------- ru_RU.UTF-8 Lower to upper: àáâãä̸æçèéêëìíîïðñòóôõö÷øùúûüýþÿ ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞß Upper to lower: &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; àáâãä叿çèéêëìíîïðñòóôõö÷øùúûüýþÿ ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=46402&edit=1

« previous php.doc.bugs (#1261) next »