Multibyte String 函数
在线手册:中文 英文
PHP手册

mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5)

mb_strtoupperMake a string uppercase

说明

string mb_strtoupper ( string $str [, string $encoding = mb_internal_encoding() ] )

Returns str with all alphabetic characters converted to uppercase.

参数

str

The string being uppercased.

encoding

encoding 参数为字符编码。如果省略,则使用内部字符编码。

返回值

str with all alphabetic characters converted to uppercase.

Unicode

For more information about the Unicode properties, please see » http://www.unicode.org/unicode/reports/tr21/.

By contrast to strtoupper(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as a-umlaut (?).

范例

Example #1 mb_strtoupper() example

<?php
$str 
"Mary Had A Little Lamb and She LOVED It So";
$str mb_strtoupper($str);
echo 
$str// Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

Example #2 mb_strtoupper() example with non-Latin UTF-8 text

<?php
$str 
"Τ?χιστη αλ?πηξ βαφ?? ψημ?νη γη, δρασκελ?ζει υπ?ρ νωθρο? κυν??";
$str mb_strtoupper($str'UTF-8');
echo 
$str// Prints Τ?ΧΙΣΤΗ ΑΛ?ΠΗΞ ΒΑΦ?Σ ΨΗΜ?ΝΗ ΓΗ, ΔΡΑΣΚΕΛ?ΖΕΙ ΥΠ?Ρ ΝΩΘΡΟ? ΚΥΝ?Σ
?>

参见


Multibyte String 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Make a string uppercase

用户评论:

tomasz at trejderowski dot pl (29-Dec-2010 01:01)

Please note, that in many cases, forcing UTF-8 encoding with second parameter is necessary. PHP documentation states that if this parameter is omitted, the internal character encoding value will be used. But in my case it turned out to be not true. Even though I have all my pages encoded in UTF-8 and my DB connection set to force UTF-8 encoding, comparison of user-input and DB-retrieved data, which is using mb_strtoupper, did not work until I forced encoding.

rai at philscan dot com (10-Aug-2009 08:33)

for some reason, there are instances that special characters do show when you use this function, but when you revisit or refresh the page the special characters doesn't appear anymore, ie GRSARMERING is being displayed instead of GR?SARMERING. You have to provide the second parameter which charset you are using to override the value. in my case it's iso-8859-1, so the function would now look like

mb_strtoupper($foo, 'iso-8859-1')

oriol dot torras at mobifriends dot com (24-Nov-2008 02:13)

UTF-8 does not support html entities
&oacute; is ó in UTF-8

cyril dot legret at free dot no-spam dot fr (25-Feb-2005 09:40)

Be careful with htmlentities ...
<?
echo mb_strtoupper("L'&eacute;lphant", "utf-8");
?>
output : L'&EACUTE;LPHANT