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

Reply via email to