web-dev-qa-db-ja.com

strtoupper PHP UTF-8文字列用の関数

Strtoupper()PHP関数のユーザーコメントを読んでいますが、英語以外の文字列を変換する方法についてコンセンサスがありません。ローカライズされたソリューションを提供していることを意味しますともの、しかし文字列をすべて大文字(またはすべて小文字)に変換する統一された方法があるべきではありませんか?

したがって、私の質問は、たとえば、UTF-8でエンコードされた文字列がある場合(不明なロケールの場合)、それをPHPのすべての大文字/小文字に変換するにはどうすればよいですか?

28
ahmd0

mb_strtoupperを使用します。

$str = "Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός";
$str = mb_strtoupper($str, "UTF-8");
echo $str; // Prints ΤΆΧΙΣΤΗ ΑΛΏΠΗΞ ΒΑΦΉΣ ΨΗΜΈΝΗ ΓΗ, ΔΡΑΣΚΕΛΊΖΕΙ ΥΠΈΡ ΝΩΘΡΟΎ ΚΥΝΌΣ

PHP.net の状態:

Strtolower()やstrtoupper()などの標準のケースフォールディング関数とは対照的に、ケースフォールディングはUnicode文字プロパティに基づいて実行されます。したがって、この関数の動作はロケール設定の影響を受けず、Aウムラウト(Ä)などの「アルファベット」プロパティを持つすべての文字を変換できます。

54
Kelly

試しましたか this ?私は言語学者ではありませんが、すべての言語で大文字と小文字が区別されているとは思いません。

0
Robin