のは、私はこのようなUTF-8
テキストを持っているとしましょう:マルチバイト文字列からシングルバイト文字を置き換えるにはmb_ *は必要ですか?
âàêíóôõ <br> âàêíóôõ <br> âàêíóôõ
私は<br />
で<br>
を交換したいです。 mb_str_replace
を使用する必要がありますか、str_replace
を使用できますか?
<
b
r
/
>
は、すべてのシングルバイト文字ですConsindering?
のは、私はこのようなUTF-8
テキストを持っているとしましょう:マルチバイト文字列からシングルバイト文字を置き換えるにはmb_ *は必要ですか?
âàêíóôõ <br> âàêíóôõ <br> âàêíóôõ
私は<br />
で<br>
を交換したいです。 mb_str_replace
を使用する必要がありますか、str_replace
を使用できますか?
<
b
r
/
>
は、すべてのシングルバイト文字ですConsindering?
str_replace
はバイナリセーフでUTF-8は全単射エンコードなので、3つのパラメータがすべてUTF-8としてエンコードされている限り、検索文字列または置換にマルチバイト文字が含まれていてもstr_replace
を使用できます。
だからこそ、最初にmb_str_replace
機能がないのです。
あなたのエンコーディングが全単射でない場合 - つまり両方'+ADw-'
と'<'
として表すことができるUTF-7の例<
に同じ文字列の複数の表現が、ありますが、あなたは同じ(全単射)へのすべての文字列を変換する必要がありますエンコードし、str_replace
を適用し、文字列をターゲットエンコードに変換します。
Reference for manipulating UTF-8 strings safely in PHP。ハードとファーストのルールはありません。ネイティブのPHP文字列関数の中には、utf-8で安全に動作するものもあれば、気にするものもあり、できないものもあります。
mb_str_replace()
はありません。 3つの引数すべてが有効なUTF-8文字列である限り、「UTF-8安全機能」セクション:explode()
とstr_replace()
は安全です。
全単射? O_O – dynamic
基本的にUTF-8では 'mb_str_replace'を忘れることができますか? UTF-8を忘れることができる他のmb_ *はどれですか? – dynamic
たとえば、 'mb_substr_count();'? – dynamic