Edit report at http://bugs.php.net/bug.php?id=49958&edit=1
ID: 49958 Updated by: [email protected] Reported by: mjong at magnafacta dot nl Summary: mb_strtoupper fails on Japanese characters -Status: No Feedback +Status: Feedback Type: Bug Package: mbstring related Operating System: Windows Vista PHP Version: 5.2.11 -Assigned To: +Assigned To: moriyoshi New Comment: Please try using this snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://windows.php.net/snapshots/ Previous Comments: ------------------------------------------------------------------------ [2009-11-03 01:00:00] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". ------------------------------------------------------------------------ [2009-10-26 11:09:58] [email protected] Ever heard of http://www.pastebin.com/ ? ------------------------------------------------------------------------ [2009-10-26 10:12:51] mjong at magnafacta dot nl mbstring.func_overload = 0. Setting it to 2 or 7 just means there is no difference between calling sttrtoupper() and mb_strtoupper(), but ucfirst() still produces incorrectly coded strings. This is using UTF- 8 for internal encoding. Using UTF-16 and UTF-32 basically crashes the program. mbstring.strict_detection = Off. Setting it to On does have no effect whatsoever. I.e. if I check with phpinfo() it stays off, no matter what I specify as value. This is not the case with other php.ini settings. Besides there is no documentation on its effect. I really researched this problem - but cannot not show you because then this form says I am spammming - but the crux of this problem is that UTF-8, UTF-16 and UTF-32 each behave differently when used with strtoupper() and mb_strtoupper() and all can result in string that are not valid encodings. I have a working solution for my case, but I think this is a solvable bug. ------------------------------------------------------------------------ [2009-10-26 08:46:12] [email protected] Please read this page and especially the last two examples: http://www.php.net/manual/en/mbstring.configuration.php Are you using the proper options? ------------------------------------------------------------------------ [2009-10-25 14:41:10] mjong at magnafacta dot nl [PLEASE ALLOW LONGER ENTRIES] Using strtoupper() all encodings create nonsense strings, but in half the cases the error can be tested using mb_check_encoding(). Strangely enough the 2-byte definitions including UTF-8 cannot be checked, while UTF-8 and the 4-byte encodings do OK. Using mb_strtoupper() a third of the encodings do a proper translation. Half of the encodings generate nonsense and none of them can be tested using mb_check_encoding(). The rest of the encodings fail when using them with mb_strtoupper(). With mb_strtoupper() UTF-8 and UTF-16 work OK, but now UTF-32 fails. "Stranger and stranger", Alice said. ------------------------------------------------------------------------ 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=49958 -- Edit this bug report at http://bugs.php.net/bug.php?id=49958&edit=1
