strtoupper()PHP関数のユーザーコメントを読んできましたが、非Enligish文字列の変換方法についてはコンセンサスがないようです。私は人がローカライズされたソリューションやものを提供していることを意味しますが、文字列をすべての上(または下の)すべての大文字に変換する統一された方法はありませんか?strtoupper UTF-8文字列のPHP関数
私の質問は、UTF-8でエンコードされた文字列(不明なロケールで)があれば、どのようにPHPのすべての上/下の文字に変換するのですか?
strtoupper()PHP関数のユーザーコメントを読んできましたが、非Enligish文字列の変換方法についてはコンセンサスがないようです。私は人がローカライズされたソリューションやものを提供していることを意味しますが、文字列をすべての上(または下の)すべての大文字に変換する統一された方法はありませんか?strtoupper UTF-8文字列のPHP関数
私の質問は、UTF-8でエンコードされた文字列(不明なロケールで)があれば、どのようにPHPのすべての上/下の文字に変換するのですか?
mb_strtoupper
を使用します。
$str = "Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός";
$str = mb_strtoupper($str, "UTF-8");
echo $str; // Prints ΤΆΧΙΣΤΗ ΑΛΏΠΗΞ ΒΑΦΉΣ ΨΗΜΈΝΗ ΓΗ, ΔΡΑΣΚΕΛΊΖΕΙ ΥΠΈΡ ΝΩΘΡΟΎ ΚΥΝΌΣ
PHP.net状態:
標準の場合、このようなstrtolowerとして 折り畳み機能() とstrtoupper()とは対照的に、ケースフォールディングは、Unicode 文字特性に基づいて行わ あります。したがって、この関数の の動作は ではなく、 Aウムラウト(Ä)のように、 の「アルファベット」プロパティを持つ文字を に変換することができます。
thisを試しましたか?私は言語学者ではありませんが、すべての言語の大文字/小文字の区別はしません。
使用mb_strtoupper($text)
代わり strtoupper($text)
の:)すべての文字に
この回答とはどのように違いますか? http://stackoverflow.com/a/5969837/670017 – ahmd0
少なくともません。例えば 'ß'は大文字ではありません:) – KingCrunch
すべての言語ですか?中国語やアラビア語はどうですか?アラビア語では、各文字の3つのバージョンがあります。すべての文字が3つのグループすべてに対応するバージョンではありません。ギリシャ語では、頭文字(大文字でもあります)の普通と最終バージョンの文字が1つあります。 – rsk82
@ rsk82 - *そうは思いません。 – arviman