私は PHP を で構成しているmbstring.func_overload = 7
ので、すべてのシングルバイト文字列関数は対応するマルチバイト関数にマップされます。しかし、文字列をバイト配列として扱う必要がある場合もあります。たとえば、サイズを計算するときや暗号化を行うときなどです。
ここで最善のアプローチは何ですか?文字列が実際にエンコードされる方法ではない場合でも、マルチバイト関数を使用してシングルバイト エンコーディングを渡すことはできますか? 例えば:
mb_substr($utf8str, 0, 1, "latin1");
mb_strlen($utf8str, "latin1");
編集: PHP のソースを調べたときに、元の関数の名前が mb_orig_strlen のように mb_orig_X に変更されていることに気付きました。文書化されていないため、おそらく安全ではありませんが、興味深いものです。