サードパーティの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") == ÃÂ;