私のPHPスクリプトを非ASCII文字を使用してUTF-8エンコーディングで実行すると、のような一部のPHP関数が機能strtolower()
しません。
mb_strtolowerを使用することもできますが、このスクリプトはあらゆる種類の異なるプラットフォームと構成で実行でき、マルチバイト文字列拡張子が使用できない場合があります。使用する前に関数が存在するかどうかを確認できましたが、コード全体に文字列関数が散らばっていて、すべてのインスタンスを置き換えるわけではありません。
誰かが、を使用することを提案しset_locale(LC_CTYPE, 'C')
ました。これにより、文字列関数が正しく機能するようになります。これは問題ないように聞こえますが、それが何をしているのかを正確に理解せずにその変更を導入したくありません。以前にset_localeを使用して数値の形式を変更したことがありますが、これまでLC_CTYPE
フラグを使用したことがなく、その機能がよくわかりません。値'C'
はどういう意味ですか?