#47742 [Opn-Fbk]: mb_strtoupper() and mb_strtolower() failure cases
ID: 47742 Updated by: j...@php.net Reported By: fsb at thefsb dot org -Status: Open +Status: Feedback Bug Type: mbstring related Operating System: os x PHP Version: 5.2.9 -Assigned To: +Assigned To: fb-req-jani New Comment: Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://windows.php.net/snapshots/ Please do. :) Previous Comments: [2009-05-07 13:57:28] fsb at thefsb dot org jani, that looks like an improvement. should i try out the may 7 snapshot? [2009-05-06 21:10:01] j...@php.net Ignore the previous, this bad bug system messed up the input. :) Here's the actual stuff: http://pecl.php.net/~jani/bug47742.out [2009-05-06 21:07:33] j...@php.net This script: ?php $s = '#935;#953;#972;#957;#953;#945;, #946;#961;#959;#967;#941;#962; #954;#945;#953; #952;#965;#949;#955;#955;#974;#948;#949;#953;#962; #940;#957;#949;#956;#959;#953; #963;#965;#957;#952;#941;#964;#959;#965;#957; #964;#959;'; echo orig: $s\n; $s = mb_strtoupper($s); echo mb_strtoupper: $s\n; $s = mb_convert_case($s, MB_CASE_UPPER, UTF-8); echo mb_convert_case (upper): $s\n; $s = mb_strtolower($s); echo mb_strtolower: $s\n; $s = mb_convert_case($s, MB_CASE_LOWER, UTF-8); echo mb_convert_case (lower): $s\n; ? Outputs: orig: #935;#953;#972;#957;#953;#945;, #946;#961;#959;#967;#941;#962; #954;#945;#953; #952;#965;#949;#955;#955;#974;#948;#949;#953;#962; #940;#957;#949;#956;#959;#953; #963;#965;#957;#952;#941;#964;#959;#965;#957; #964;#959; mb_strtoupper: #935;#921;#908;#925;#921;#913;, #914;#929;#927;#935;#904;#931; #922;#913;#921; #920;#933;#917;#923;#923;#911;#916;#917;#921;#931; #902;#925;#917;#924;#927;#921; #931;#933;#925;#920;#904;#932;#927;#933;#925; #932;#927; mb_convert_case (upper): #935;#921;#908;#925;#921;#913;, #914;#929;#927;#935;#904;#931; #922;#913;#921; #920;#933;#917;#923;#923;#911;#916;#917;#921;#931; #902;#925;#917;#924;#927;#921; #931;#933;#925;#920;#904;#932;#927;#933;#925; #932;#927; mb_strtolower: #967;#953;#972;#957;#953;#945;, #946;#961;#959;#967;#941;#963; #954;#945;#953; #952;#965;#949;#955;#955;#974;#948;#949;#953;#963; #940;#957;#949;#956;#959;#953; #963;#965;#957;#952;#941;#964;#959;#965;#957; #964;#959; mb_convert_case (lower): #967;#953;#972;#957;#953;#945;, #946;#961;#959;#967;#941;#963; #954;#945;#953; #952;#965;#949;#955;#955;#974;#948;#949;#953;#963; #940;#957;#949;#956;#959;#953; #963;#965;#957;#952;#941;#964;#959;#965;#957; #964;#959; And this is quite correct.. [2009-05-05 11:37:26] fsb at thefsb dot org in both test scripts i provided yesterday, the character set is unicode and the encoding is utf-8. in the short test script that i provided 4 May 7:02pm UTC, there is only one short Hangul test string and no Greek, as you said. in the longer test script i provided at 4 May 5:00pm UTC, several alphabets are used including Greek, Cyrillic, Hebrew, Arabic, Thai, Kanji, ... in case it makes life easier for you, i put the longer test script on a web server: http://tomworster.net/test.php.gz it's only 1kbyte. [2009-05-05 02:02:39] j...@php.net One last question: What is the charset you used? I don't see any greek chars anywhere.. ;) 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/47742 -- Edit this bug report at http://bugs.php.net/?id=47742edit=1
#47742 [Opn-Fbk]: mb_strtoupper() and mb_strtolower() failure cases
ID: 47742 Updated by: j...@php.net Reported By: fsb at thefsb dot org -Status: Open +Status: Feedback Bug Type: mbstring related Operating System: os x PHP Version: 5.2.9 New Comment: This script: ?php $s = '#935;#953;#972;#957;#953;#945;, #946;#961;#959;#967;#941;#962; #954;#945;#953; #952;#965;#949;#955;#955;#974;#948;#949;#953;#962; #940;#957;#949;#956;#959;#953; #963;#965;#957;#952;#941;#964;#959;#965;#957; #964;#959;'; echo orig: $s\n; $s = mb_strtoupper($s); echo mb_strtoupper: $s\n; $s = mb_convert_case($s, MB_CASE_UPPER, UTF-8); echo mb_convert_case (upper): $s\n; $s = mb_strtolower($s); echo mb_strtolower: $s\n; $s = mb_convert_case($s, MB_CASE_LOWER, UTF-8); echo mb_convert_case (lower): $s\n; ? Outputs: orig: #935;#953;#972;#957;#953;#945;, #946;#961;#959;#967;#941;#962; #954;#945;#953; #952;#965;#949;#955;#955;#974;#948;#949;#953;#962; #940;#957;#949;#956;#959;#953; #963;#965;#957;#952;#941;#964;#959;#965;#957; #964;#959; mb_strtoupper: #935;#921;#908;#925;#921;#913;, #914;#929;#927;#935;#904;#931; #922;#913;#921; #920;#933;#917;#923;#923;#911;#916;#917;#921;#931; #902;#925;#917;#924;#927;#921; #931;#933;#925;#920;#904;#932;#927;#933;#925; #932;#927; mb_convert_case (upper): #935;#921;#908;#925;#921;#913;, #914;#929;#927;#935;#904;#931; #922;#913;#921; #920;#933;#917;#923;#923;#911;#916;#917;#921;#931; #902;#925;#917;#924;#927;#921; #931;#933;#925;#920;#904;#932;#927;#933;#925; #932;#927; mb_strtolower: #967;#953;#972;#957;#953;#945;, #946;#961;#959;#967;#941;#963; #954;#945;#953; #952;#965;#949;#955;#955;#974;#948;#949;#953;#963; #940;#957;#949;#956;#959;#953; #963;#965;#957;#952;#941;#964;#959;#965;#957; #964;#959; mb_convert_case (lower): #967;#953;#972;#957;#953;#945;, #946;#961;#959;#967;#941;#963; #954;#945;#953; #952;#965;#949;#955;#955;#974;#948;#949;#953;#963; #940;#957;#949;#956;#959;#953; #963;#965;#957;#952;#941;#964;#959;#965;#957; #964;#959; And this is quite correct.. Previous Comments: [2009-05-05 11:37:26] fsb at thefsb dot org in both test scripts i provided yesterday, the character set is unicode and the encoding is utf-8. in the short test script that i provided 4 May 7:02pm UTC, there is only one short Hangul test string and no Greek, as you said. in the longer test script i provided at 4 May 5:00pm UTC, several alphabets are used including Greek, Cyrillic, Hebrew, Arabic, Thai, Kanji, ... in case it makes life easier for you, i put the longer test script on a web server: http://tomworster.net/test.php.gz it's only 1kbyte. [2009-05-05 02:02:39] j...@php.net One last question: What is the charset you used? I don't see any greek chars anywhere.. ;) [2009-05-04 19:02:43] fsb at thefsb dot org ?php $s = 'ì´ë©° ì¸ê³'; print(phpversion() . \n); print(1: $s\n); print('2: '. ($s = mb_strtoupper($s)) . \n); print('3'. ($s = mb_convert_case($s, MB_CASE_UPPER, UTF-8)) . \n); print('4: '. ($s = mb_strtolower($s)) . \n); print('5: '. ($s = mb_convert_case($s, MB_CASE_LOWER, UTF-8)) . \n); ? ./php -f test2.php 5.2.10-dev 1: ì´ë©° ì¸ê³ 2: Ì?Ë©? Ì?ʳ? 3ÌË© Ìʳ 4: ?? ?? 5: expected output: 1: ì´ë©° ì¸ê³ 2: ì´ë©° ì¸ê³ 3: ì´ë©° ì¸ê³ 4: ì´ë©° ì¸ê³ 5: ì´ë©° ì¸ê³ [2009-05-04 18:46:54] j...@php.net Please provide a bit shorter example script. Or does the bug only appear with such long strings..? [2009-03-21 17:42:53] fsb at thefsb dot org Description: In some alphabets including greek, mb_strtoupper and mb_strtolower fail on strings that mb_convert_case handles ok. Reproduce code: --- ?php $strs = array( '××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת', 'اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙÙ', 'ç¬ã»ç±³ã§æ»å·è ãåºããéã®ä¹±å°äºä»¶', 'åæé ç®èå ¬å¸é©äººç赤åæ¸æå¾', 'ì´ë©° ì¸ê³ ê²½ì íë³µì 걸림ëì´ ëê³ ìë¤', 'РдагеÑÑанÑком леÑном маÑÑиве Ñжнее Ñела ÐакаÑÑÑа', 'à¸à¸²à¸¢à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¹ รุà¹à¸à¸ªà¸°à¸à¸²à¸ à¸à¸¥à¸±à¸à¹à¸à¸¨à¸à¸²à¸¥ รัà¸à¸©à¸²à¸à¸²à¸£à¹à¸à¸à¸à¸²à¸¢à¸à¹à¸à¸¨à¸¡à¸à¸à¸£à¸µ à¸.à¸à¹à¸²à¸à¸à¸à¹à¸«à¸¡à¹', 'àªàª¾àª°àª¤à«àª¯ àªà«àª®àª¨à« સà«àªµàª°à«àª£ યà«àª : àªàª¿àªµà«àªàª®àª¾àª પણ àªàª®àª¾àª²',
#47742 [Opn-Fbk]: mb_strtoupper and mb_strtolower failure cases
ID: 47742 Updated by: j...@php.net Reported By: fsb at thefsb dot org -Status: Open +Status: Feedback Bug Type: mbstring related Operating System: os x PHP Version: 5.2.9 Assigned To: fb-req-jani New Comment: Please provide a bit shorter example script. Or does the bug only appear with such long strings..? Previous Comments: [2009-05-04 17:00:15] fsb at thefsb dot org in php5.2-200904162030, mb_strto(upp|low)er appears to be even worse. mb_convert_case is now also badly broken. $strs = array( 'Iñtërnâtiônà lizætiøn', '××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת', 'اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙÙ', 'ç¬ã»ç±³ã§æ»å·è ãåºããéã®ä¹±å°äºä»¶', 'åæé ç®èå ¬å¸é©äººç赤åæ¸æå¾', 'ì´ë©° ì¸ê³ ê²½ì íë³µì 걸림ëì´ ëê³ ìë¤', 'РдагеÑÑанÑком леÑном маÑÑиве Ñжнее Ñела ÐакаÑÑÑа', 'à¸à¸²à¸¢à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¹ รุà¹à¸à¸ªà¸°à¸à¸²à¸ à¸à¸¥à¸±à¸à¹à¸à¸¨à¸à¸²à¸¥ รัà¸à¸©à¸²à¸à¸²à¸£à¹à¸à¸à¸à¸²à¸¢à¸à¹à¸à¸¨à¸¡à¸à¸à¸£à¸µ à¸.à¸à¹à¸²à¸à¸à¸à¹à¸«à¸¡à¹', 'àªàª¾àª°àª¤à«àª¯ àªà«àª®àª¨à« સà«àªµàª°à«àª£ યà«àª : àªàª¿àªµà«àªàª®àª¾àª પણ àªàª®àª¾àª²', 'à½à½à½¦à¼à½à½à½¢à¼à½à½à½ºà½¦à¼à½¦à¼à½à½´à½£à¼à½à½´à¼à½¢à¾à¾±à¼à½à½à½´à½à¼à½£à¼à½à½²à¼à½à½ ིà¼à½à½¼à¼à½¢à¾à½¼à½£à¼', 'ΧιÏνια, βÏοÏÎÏ ÎºÎ±Î¹ Î¸Ï ÎµÎ»Î»ÏÎ´ÎµÎ¹Ï Î¬Î½ÎµÎ¼Î¿Î¹ ÏÏ Î½Î¸ÎÏÎ¿Ï Î½ Ïο', 'ÕÕ¡ÕµÕ¡Õ½Õ¿Õ¡Õ¶Õ¸ÖÕ´ Õ½Õ¯Õ½Õ¾Õ¥Õ¬ Õ§ Õ¤Õ¡Õ¿Õ¡Õ¯Õ¡Õ¶ Õ°Õ¡Õ´Õ¡Õ¯Õ¡ÖÕ£Õ« Õ±Õ¥ÖÕ¡Õ¾Õ¸ÖÕ¸ÖÕ´Õ¨', 'á á£á¡ááá áá¡ááá ááááááá¡ á¡ááá®ááá á'); print(phpversion() . \n); foreach ($strs as $s) { print(\n1: $s\n); print('2: '. ($s = mb_strtoupper($s)) . \n); print('3'. ($s = mb_convert_case($s, MB_CASE_UPPER, UTF-8)) . \n); print('4: '. ($s = mb_strtolower($s)) . \n); print('5: '. ($s = mb_convert_case($s, MB_CASE_LOWER, UTF-8)) . \n); } ./php -f test.php 5.2.10-dev 1: Iñtërnâtiônà lizætiøn 2: IñTëRNâTIôNà LIZæTIøN 3IÃTÃRNÃTIÃNÃLIZÃTIÃN 4: i?t?rn?ti?n?liz?ti?n 5: itrntinliztin 1: ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת 2: ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת 3××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת 4: ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת 5: ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת 1: اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙÙ 2: اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙÙ 3اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙÙ 4: ?? ?? ? ??? 5: 1: ç¬ã»ç±³ã§æ»å·è ãåºããéã®ä¹±å°äºä»¶ 2: Ç?Ã?DZ?Ã?Æ?Å?È?Ã?Å?Ã?Ã?É?Ã?Ĺ?Å°?ĺ?Ä»? 3ÇÃDZÃƬÅÈÃÅÃÃÉÃĹŰĹĻ 4: ? 5: 1: åæé ç®èå ¬å¸é©äººç赤åæ¸æå¾ 2: Å?Æ?É ?Ç®?È?Å ?Ÿ?É©?ĺ?ÇÅ?Æ?Æ?ž? 3ÅÆÆǮȊŸÆĹÇ?ŬǶÆŽ 4: ??? 5: ? 1: ì´ë©° ì¸ê³ ê²½ì íë³µì 걸림ëì´ ëê³ ìë¤ 2: Ì?Ë©? Ì?ʳ? ʲ?Ì ? Í?˳?Ì? ʱ?˦?Ë?Ì? Ë?ʳ? Ì?Ë? 3ÌË© Ìʳ Ê²Ì Í˳?Ì Ê±Ë¦ËÌ Ëʳ ÌË 4: ?? ?? ?? ?? ?? 5:? 1: РдагеÑÑанÑком леÑном маÑÑиве Ñжнее Ñела ÐакаÑÑÑа 2: Рдаг??ÑÑанÑком л??Ñном маÑÑив?? Ñжн Ñ??ла ÐакаÑÑÑа 3Ð ÐÐÐ?СТÐÐСÐÐÐ Ð?СÐÐÐ ÐÐССÐÐ? ЮÐÐ?? С?ÐÐ ÐÐÐÐШУРР4: ? ?? ??? ? 5: ? ? ? ?? ? 1: à¸à¸²à¸¢à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¹ รุà¹à¸à¸ªà¸°à¸à¸²à¸ à¸à¸¥à¸±à¸à¹à¸à¸¨à¸à¸²à¸¥ รัà¸à¸©à¸²à¸à¸²à¸£à¹à¸à¸à¸à¸²à¸¢à¸à¹à¸à¸¨à¸¡à¸à¸à¸£à¸µ à¸.à¸à¹à¸²à¸à¸à¸à¹à¸«à¸¡à¹ 2: ??? ?? ? ???.?? 3 ? . 4:? . 5:? . 1: àªàª¾àª°àª¤à«àª¯ àªà«àª®àª¨à« સà«àªµàª°à«àª£ યà«àª : àªàª¿àªµà«àªàª®àª¾àª પણ àªàª®àª¾àª² 2: ?? ??? ?? ? : ? ??? ?? 3 ? : ? 4: ? : ? 5: ? : ? 1: à½à½à½¦à¼à½à½à½¢à¼à½à½à½ºà½¦à¼à½¦à¼à½à½´à½£à¼à½à½´à¼à½¢à¾à¾±à¼à½à½à½´à½à¼à½£à¼à½à½²à¼à½à½ ིà¼à½à½¼à¼à½¢à¾à½¼à½£à¼ 2: ???
#47742 [Opn-Fbk]: mb_strtoupper and mb_strtolower failure cases
ID: 47742 Updated by: j...@php.net Reported By: fsb at thefsb dot org -Status: Open +Status: Feedback Bug Type: mbstring related Operating System: os x PHP Version: 5.2.9 Assigned To: fb-req-jani New Comment: One last question: What is the charset you used? I don't see any greek chars anywhere.. ;) Previous Comments: [2009-05-04 19:02:43] fsb at thefsb dot org ?php $s = 'ì´ë©° ì¸ê³'; print(phpversion() . \n); print(1: $s\n); print('2: '. ($s = mb_strtoupper($s)) . \n); print('3'. ($s = mb_convert_case($s, MB_CASE_UPPER, UTF-8)) . \n); print('4: '. ($s = mb_strtolower($s)) . \n); print('5: '. ($s = mb_convert_case($s, MB_CASE_LOWER, UTF-8)) . \n); ? ./php -f test2.php 5.2.10-dev 1: ì´ë©° ì¸ê³ 2: Ì?Ë©? Ì?ʳ? 3ÌË© Ìʳ 4: ?? ?? 5: expected output: 1: ì´ë©° ì¸ê³ 2: ì´ë©° ì¸ê³ 3: ì´ë©° ì¸ê³ 4: ì´ë©° ì¸ê³ 5: ì´ë©° ì¸ê³ [2009-05-04 18:46:54] j...@php.net Please provide a bit shorter example script. Or does the bug only appear with such long strings..? [2009-05-04 17:00:15] fsb at thefsb dot org in php5.2-200904162030, mb_strto(upp|low)er appears to be even worse. mb_convert_case is now also badly broken. $strs = array( 'Iñtërnâtiônà lizætiøn', '××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת', 'اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙÙ', 'ç¬ã»ç±³ã§æ»å·è ãåºããéã®ä¹±å°äºä»¶', 'åæé ç®èå ¬å¸é©äººç赤åæ¸æå¾', 'ì´ë©° ì¸ê³ ê²½ì íë³µì 걸림ëì´ ëê³ ìë¤', 'РдагеÑÑанÑком леÑном маÑÑиве Ñжнее Ñела ÐакаÑÑÑа', 'à¸à¸²à¸¢à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¹ รุà¹à¸à¸ªà¸°à¸à¸²à¸ à¸à¸¥à¸±à¸à¹à¸à¸¨à¸à¸²à¸¥ รัà¸à¸©à¸²à¸à¸²à¸£à¹à¸à¸à¸à¸²à¸¢à¸à¹à¸à¸¨à¸¡à¸à¸à¸£à¸µ à¸.à¸à¹à¸²à¸à¸à¸à¹à¸«à¸¡à¹', 'àªàª¾àª°àª¤à«àª¯ àªà«àª®àª¨à« સà«àªµàª°à«àª£ યà«àª : àªàª¿àªµà«àªàª®àª¾àª પણ àªàª®àª¾àª²', 'à½à½à½¦à¼à½à½à½¢à¼à½à½à½ºà½¦à¼à½¦à¼à½à½´à½£à¼à½à½´à¼à½¢à¾à¾±à¼à½à½à½´à½à¼à½£à¼à½à½²à¼à½à½ ིà¼à½à½¼à¼à½¢à¾à½¼à½£à¼', 'ΧιÏνια, βÏοÏÎÏ ÎºÎ±Î¹ Î¸Ï ÎµÎ»Î»ÏÎ´ÎµÎ¹Ï Î¬Î½ÎµÎ¼Î¿Î¹ ÏÏ Î½Î¸ÎÏÎ¿Ï Î½ Ïο', 'ÕÕ¡ÕµÕ¡Õ½Õ¿Õ¡Õ¶Õ¸ÖÕ´ Õ½Õ¯Õ½Õ¾Õ¥Õ¬ Õ§ Õ¤Õ¡Õ¿Õ¡Õ¯Õ¡Õ¶ Õ°Õ¡Õ´Õ¡Õ¯Õ¡ÖÕ£Õ« Õ±Õ¥ÖÕ¡Õ¾Õ¸ÖÕ¸ÖÕ´Õ¨', 'á á£á¡ááá áá¡ááá ááááááá¡ á¡ááá®ááá á'); print(phpversion() . \n); foreach ($strs as $s) { print(\n1: $s\n); print('2: '. ($s = mb_strtoupper($s)) . \n); print('3'. ($s = mb_convert_case($s, MB_CASE_UPPER, UTF-8)) . \n); print('4: '. ($s = mb_strtolower($s)) . \n); print('5: '. ($s = mb_convert_case($s, MB_CASE_LOWER, UTF-8)) . \n); } ./php -f test.php 5.2.10-dev 1: Iñtërnâtiônà lizætiøn 2: IñTëRNâTIôNà LIZæTIøN 3IÃTÃRNÃTIÃNÃLIZÃTIÃN 4: i?t?rn?ti?n?liz?ti?n 5: itrntinliztin 1: ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת 2: ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת 3××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת 4: ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת 5: ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת 1: اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙÙ 2: اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙÙ 3اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙÙ 4: ?? ?? ? ??? 5: 1: ç¬ã»ç±³ã§æ»å·è ãåºããéã®ä¹±å°äºä»¶ 2: Ç?Ã?DZ?Ã?Æ?Å?È?Ã?Å?Ã?Ã?É?Ã?Ĺ?Å°?ĺ?Ä»? 3ÇÃDZÃƬÅÈÃÅÃÃÉÃĹŰĹĻ 4: ? 5: 1: åæé ç®èå ¬å¸é©äººç赤åæ¸æå¾ 2: Å?Æ?É ?Ç®?È?Å ?Ÿ?É©?ĺ?ÇÅ?Æ?Æ?ž? 3ÅÆÆǮȊŸÆĹÇ?ŬǶÆŽ 4: ??? 5: ? 1: ì´ë©° ì¸ê³ ê²½ì íë³µì 걸림ëì´ ëê³ ìë¤ 2: Ì?Ë©? Ì?ʳ? ʲ?Ì ? Í?˳?Ì? ʱ?˦?Ë?Ì? Ë?ʳ? Ì?Ë? 3ÌË© Ìʳ Ê²Ì Í˳?Ì Ê±Ë¦ËÌ Ëʳ ÌË 4: ?? ?? ?? ?? ?? 5:? 1: РдагеÑÑанÑком леÑном маÑÑиве Ñжнее Ñела ÐакаÑÑÑа 2: Рдаг??ÑÑанÑком л??Ñном маÑÑив?? Ñжн Ñ??ла ÐакаÑÑÑа 3Ð ÐÐÐ?СТÐÐСÐÐÐ Ð?СÐÐÐ ÐÐССÐÐ? ЮÐÐ?? С?ÐÐ ÐÐÐÐШУРР4: ? ?? ??? ? 5: ? ? ? ?? ? 1: à¸à¸²à¸¢à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¹ รุà¹à¸à¸ªà¸°à¸à¸²à¸ à¸à¸¥à¸±à¸à¹à¸à¸¨à¸à¸²à¸¥
#47742 [Opn-Fbk]: mb_strtoupper and mb_strtolower failure cases
ID: 47742 Updated by: j...@php.net Reported By: fsb at thefsb dot org -Status: Open +Status: Feedback Bug Type: mbstring related Operating System: os x PHP Version: 5.2.9 -Assigned To: +Assigned To: fb-req-jani New Comment: To test the mbstring bug you don't need mysql. So just disable that. Or pass the path to mysql_config properly. Previous Comments: [2009-04-16 23:05:12] fsb at thefsb dot org unfortunately i have not been able to compile this on os-x. it seems configure wants to find mysql_config in a location where it is not and i am not able to coerce it into accepting the default os-x mysql layout. frustrating. [2009-04-16 19:32:33] j...@php.net Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://windows.php.net/snapshots/ [2009-03-21 17:42:53] fsb at thefsb dot org Description: In some alphabets including greek, mb_strtoupper and mb_strtolower fail on strings that mb_convert_case handles ok. Reproduce code: --- ?php $strs = array( '××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת', 'اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙÙ', 'ç¬ã»ç±³ã§æ»å·è ãåºããéã®ä¹±å°äºä»¶', 'åæé ç®èå ¬å¸é©äººç赤åæ¸æå¾', 'ì´ë©° ì¸ê³ ê²½ì íë³µì 걸림ëì´ ëê³ ìë¤', 'РдагеÑÑанÑком леÑном маÑÑиве Ñжнее Ñела ÐакаÑÑÑа', 'à¸à¸²à¸¢à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¹ รุà¹à¸à¸ªà¸°à¸à¸²à¸ à¸à¸¥à¸±à¸à¹à¸à¸¨à¸à¸²à¸¥ รัà¸à¸©à¸²à¸à¸²à¸£à¹à¸à¸à¸à¸²à¸¢à¸à¹à¸à¸¨à¸¡à¸à¸à¸£à¸µ à¸.à¸à¹à¸²à¸à¸à¸à¹à¸«à¸¡à¹', 'àªàª¾àª°àª¤à«àª¯ àªà«àª®àª¨à« સà«àªµàª°à«àª£ યà«àª : àªàª¿àªµà«àªàª®àª¾àª પણ àªàª®àª¾àª²', 'à½à½à½¦à¼à½à½à½¢à¼à½à½à½ºà½¦à¼à½¦à¼à½à½´à½£à¼à½à½´à¼à½¢à¾à¾±à¼à½à½à½´à½à¼à½£à¼à½à½²à¼à½à½ ིà¼à½à½¼à¼à½¢à¾à½¼à½£à¼', 'ΧιÏνια, βÏοÏÎÏ ÎºÎ±Î¹ Î¸Ï ÎµÎ»Î»ÏÎ´ÎµÎ¹Ï Î¬Î½ÎµÎ¼Î¿Î¹ ÏÏ Î½Î¸ÎÏÎ¿Ï Î½ Ïο', 'ÕÕ¡ÕµÕ¡Õ½Õ¿Õ¡Õ¶Õ¸ÖÕ´ Õ½Õ¯Õ½Õ¾Õ¥Õ¬ Õ§ Õ¤Õ¡Õ¿Õ¡Õ¯Õ¡Õ¶ Õ°Õ¡Õ´Õ¡Õ¯Õ¡ÖÕ£Õ« Õ±Õ¥ÖÕ¡Õ¾Õ¸ÖÕ¸ÖÕ´Õ¨', 'á á£á¡ááá áá¡ááá ááááááá¡ á¡ááá®ááá á'); foreach ($strs as $s) { print(\n$s\n); print(($s = mb_strtoupper($s)) . \n); // cf: print(($s = mb_convert_case($s, MB_CASE_UPPER, UTF-8)) . \n); print(($s = mb_strtolower($s)) . \n); // cf: print(($s = mb_convert_case($s, MB_CASE_LOWER, UTF-8)) . \n); } ? Expected result: ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙ٠اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙ٠اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙÙ ç¬ã»ç±³ã§æ»å·è ãåºããéã®ä¹±å°äºä»¶ ç¬ã»ç±³ã§æ»å·è ãåºããéã®ä¹±å°äºä»¶ ç¬ã»ç±³ã§æ»å·è ãåºããéã®ä¹±å°äºä»¶ åæé ç®èå ¬å¸é©äººç赤åæ¸æå¾ åæé ç®èå ¬å¸é©äººç赤åæ¸æå¾ åæé ç®èå ¬å¸é©äººç赤åæ¸æå¾ ì´ë©° ì¸ê³ ê²½ì íë³µì 걸림ëì´ ëê³ ìë¤ ì´ë©° ì¸ê³ ê²½ì íë³µì 걸림ëì´ ëê³ ìë¤ ì´ë©° ì¸ê³ ê²½ì íë³µì 걸림ëì´ ëê³ ìë¤ Ð Ð´Ð°Ð³ÐµÑÑанÑком леÑном маÑÑиве Ñжнее Ñела ÐакаÑÑÑа Ð ÐÐÐÐСТÐÐСÐÐÐ ÐÐСÐÐÐ ÐÐССÐÐРЮÐÐÐРСÐÐÐ ÐÐÐÐШУРРв дагеÑÑанÑком леÑном маÑÑиве Ñжнее Ñела какаÑÑÑа à¸à¸²à¸¢à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¹ รุà¹à¸à¸ªà¸°à¸à¸²à¸ à¸à¸¥à¸±à¸à¹à¸à¸¨à¸à¸²à¸¥ รัà¸à¸©à¸²à¸à¸²à¸£à¹à¸à¸à¸à¸²à¸¢à¸à¹à¸à¸¨à¸¡à¸à¸à¸£à¸µ à¸.à¸à¹à¸²à¸à¸à¸à¹à¸«à¸¡à¹ à¸à¸²à¸¢à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¹ รุà¹à¸à¸ªà¸°à¸à¸²à¸ à¸à¸¥à¸±à¸à¹à¸à¸¨à¸à¸²à¸¥ รัà¸à¸©à¸²à¸à¸²à¸£à¹à¸à¸à¸à¸²à¸¢à¸à¹à¸à¸¨à¸¡à¸à¸à¸£à¸µ à¸.à¸à¹à¸²à¸à¸à¸à¹à¸«à¸¡à¹ à¸à¸²à¸¢à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¹ รุà¹à¸à¸ªà¸°à¸à¸²à¸ à¸à¸¥à¸±à¸à¹à¸à¸¨à¸à¸²à¸¥ รัà¸à¸©à¸²à¸à¸²à¸£à¹à¸à¸à¸à¸²à¸¢à¸à¹à¸à¸¨à¸¡à¸à¸à¸£à¸µ à¸.à¸à¹à¸²à¸à¸à¸à¹à¸«à¸¡à¹ àªàª¾àª°àª¤à«àª¯ àªà«àª®àª¨à« સà«àªµàª°à«àª£ યà«àª :
#47742 [Opn-Fbk]: mb_strtoupper and mb_strtolower failure cases
ID: 47742 Updated by: j...@php.net Reported By: fsb at thefsb dot org -Status: Open +Status: Feedback Bug Type: mbstring related Operating System: os x PHP Version: 5.2.9 New Comment: Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://windows.php.net/snapshots/ Previous Comments: [2009-03-21 17:42:53] fsb at thefsb dot org Description: In some alphabets including greek, mb_strtoupper and mb_strtolower fail on strings that mb_convert_case handles ok. Reproduce code: --- ?php $strs = array( '××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת', 'اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙÙ', 'ç¬ã»ç±³ã§æ»å·è ãåºããéã®ä¹±å°äºä»¶', 'åæé ç®èå ¬å¸é©äººç赤åæ¸æå¾', 'ì´ë©° ì¸ê³ ê²½ì íë³µì 걸림ëì´ ëê³ ìë¤', 'РдагеÑÑанÑком леÑном маÑÑиве Ñжнее Ñела ÐакаÑÑÑа', 'à¸à¸²à¸¢à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¹ รุà¹à¸à¸ªà¸°à¸à¸²à¸ à¸à¸¥à¸±à¸à¹à¸à¸¨à¸à¸²à¸¥ รัà¸à¸©à¸²à¸à¸²à¸£à¹à¸à¸à¸à¸²à¸¢à¸à¹à¸à¸¨à¸¡à¸à¸à¸£à¸µ à¸.à¸à¹à¸²à¸à¸à¸à¹à¸«à¸¡à¹', 'àªàª¾àª°àª¤à«àª¯ àªà«àª®àª¨à« સà«àªµàª°à«àª£ યà«àª : àªàª¿àªµà«àªàª®àª¾àª પણ àªàª®àª¾àª²', 'à½à½à½¦à¼à½à½à½¢à¼à½à½à½ºà½¦à¼à½¦à¼à½à½´à½£à¼à½à½´à¼à½¢à¾à¾±à¼à½à½à½´à½à¼à½£à¼à½à½²à¼à½à½ ིà¼à½à½¼à¼à½¢à¾à½¼à½£à¼', 'ΧιÏνια, βÏοÏÎÏ ÎºÎ±Î¹ Î¸Ï ÎµÎ»Î»ÏÎ´ÎµÎ¹Ï Î¬Î½ÎµÎ¼Î¿Î¹ ÏÏ Î½Î¸ÎÏÎ¿Ï Î½ Ïο', 'ÕÕ¡ÕµÕ¡Õ½Õ¿Õ¡Õ¶Õ¸ÖÕ´ Õ½Õ¯Õ½Õ¾Õ¥Õ¬ Õ§ Õ¤Õ¡Õ¿Õ¡Õ¯Õ¡Õ¶ Õ°Õ¡Õ´Õ¡Õ¯Õ¡ÖÕ£Õ« Õ±Õ¥ÖÕ¡Õ¾Õ¸ÖÕ¸ÖÕ´Õ¨', 'á á£á¡ááá áá¡ááá ááááááá¡ á¡ááá®ááá á'); foreach ($strs as $s) { print(\n$s\n); print(($s = mb_strtoupper($s)) . \n); // cf: print(($s = mb_convert_case($s, MB_CASE_UPPER, UTF-8)) . \n); print(($s = mb_strtolower($s)) . \n); // cf: print(($s = mb_convert_case($s, MB_CASE_LOWER, UTF-8)) . \n); } ? Expected result: ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת ××××ס: ר×צ×× ××ש××× ×ת עסקת ש××× ××××ר×ת ××פשר×ת اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙ٠اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙ٠اÙرا٠Ùا تر٠تغÙÙرا Ù٠اÙÙ ÙÙ٠اÙأ٠رÙÙÙ ç¬ã»ç±³ã§æ»å·è ãåºããéã®ä¹±å°äºä»¶ ç¬ã»ç±³ã§æ»å·è ãåºããéã®ä¹±å°äºä»¶ ç¬ã»ç±³ã§æ»å·è ãåºããéã®ä¹±å°äºä»¶ åæé ç®èå ¬å¸é©äººç赤åæ¸æå¾ åæé ç®èå ¬å¸é©äººç赤åæ¸æå¾ åæé ç®èå ¬å¸é©äººç赤åæ¸æå¾ ì´ë©° ì¸ê³ ê²½ì íë³µì 걸림ëì´ ëê³ ìë¤ ì´ë©° ì¸ê³ ê²½ì íë³µì 걸림ëì´ ëê³ ìë¤ ì´ë©° ì¸ê³ ê²½ì íë³µì 걸림ëì´ ëê³ ìë¤ Ð Ð´Ð°Ð³ÐµÑÑанÑком леÑном маÑÑиве Ñжнее Ñела ÐакаÑÑÑа Ð ÐÐÐÐСТÐÐСÐÐÐ ÐÐСÐÐÐ ÐÐССÐÐРЮÐÐÐРСÐÐÐ ÐÐÐÐШУРРв дагеÑÑанÑком леÑном маÑÑиве Ñжнее Ñела какаÑÑÑа à¸à¸²à¸¢à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¹ รุà¹à¸à¸ªà¸°à¸à¸²à¸ à¸à¸¥à¸±à¸à¹à¸à¸¨à¸à¸²à¸¥ รัà¸à¸©à¸²à¸à¸²à¸£à¹à¸à¸à¸à¸²à¸¢à¸à¹à¸à¸¨à¸¡à¸à¸à¸£à¸µ à¸.à¸à¹à¸²à¸à¸à¸à¹à¸«à¸¡à¹ à¸à¸²à¸¢à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¹ รุà¹à¸à¸ªà¸°à¸à¸²à¸ à¸à¸¥à¸±à¸à¹à¸à¸¨à¸à¸²à¸¥ รัà¸à¸©à¸²à¸à¸²à¸£à¹à¸à¸à¸à¸²à¸¢à¸à¹à¸à¸¨à¸¡à¸à¸à¸£à¸µ à¸.à¸à¹à¸²à¸à¸à¸à¹à¸«à¸¡à¹ à¸à¸²à¸¢à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¹ รุà¹à¸à¸ªà¸°à¸à¸²à¸ à¸à¸¥à¸±à¸à¹à¸à¸¨à¸à¸²à¸¥ รัà¸à¸©à¸²à¸à¸²à¸£à¹à¸à¸à¸à¸²à¸¢à¸à¹à¸à¸¨à¸¡à¸à¸à¸£à¸µ à¸.à¸à¹à¸²à¸à¸à¸à¹à¸«à¸¡à¹ àªàª¾àª°àª¤à«àª¯ àªà«àª®àª¨à« સà«àªµàª°à«àª£ યà«àª : àªàª¿àªµà«àªàª®àª¾àª પણ àªàª®àª¾àª² àªàª¾àª°àª¤à«àª¯ àªà«àª®àª¨à« સà«àªµàª°à«àª£ યà«àª : àªàª¿àªµà«àªàª®àª¾àª પણ àªàª®àª¾àª² àªàª¾àª°àª¤à«àª¯ àªà«àª®àª¨à« સà«àªµàª°à«àª£ યà«àª : àªàª¿àªµà«àªàª®àª¾àª પણ àªàª®àª¾àª² à½à½à½¦à¼à½à½à½¢à¼à½à½à½ºà½¦à¼à½¦à¼à½à½´à½£à¼à½à½´à¼à½¢à¾à¾±à¼à½à½à½´à½à¼à½£à¼à½à½²à¼à½à½ ིà¼à½à½¼à¼à½¢à¾à½¼à½£à¼ à½à½à½¦à¼à½à½à½¢à¼à½à½à½ºà½¦à¼à½¦à¼à½à½´à½£à¼à½à½´à¼à½¢à¾à¾±à¼à½à½à½´à½à¼à½£à¼à½à½²à¼à½à½ ིà¼à½à½¼à¼à½¢à¾à½¼à½£à¼