#46402 [Opn->Bgs]: Incorrect case convertions of native letters, after using setlocale
| From: | jani@php.net | 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:
���������������������������������
àáâãä叿çèéêëìíîïðñòóôõö÷øùúûüýþÿ
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=46402&edit=1