サードパーティのWebサイトにcURLリクエストを送信しています。このテキストファイルでは、特定の文字を同等のhtmlエンティティに置き換えるためにいくつかの文字列を置き換える必要があります。たとえば、に置き換える必要がありí
ますí
。
応答を直接使用string_replace/preg_replace_callback
しても一致は得られなかったため(í
直接検索する場合でも、16進コードを使用する場合でも)、置換を実行する前\x00\xED
に使用しました。utf8_encode()
ただし、すべての文字を。utf8_encode
に置き換えます。í
Ã
なぜこれが発生するのですか?phpを使用して任意のテキストでUTF-8置換を実行するための正しいアプローチは何ですか?
*編集-いくつかのさらなる研究が明らかに
utf8_decode("í") == í;
utf8_encode("í") == ÃÂ;
utf8_encode("\xc3\xad") == ÃÂ;