文字列の文字エンコーディングを HTML-ENTITIES に変換してから、utf-8 に戻したいと考えています。エンコーディングに変換して元に戻すと、同じ文字列が残るはずだと思いましたが、そうではありません。
私のテスト文字列は次のとおりです。
Test: ěščřžýáíé'
HTML-ENTITIES への変換
echo mb_convert_encoding('Test: ěščřžýáíé', 'HTML-ENTITIES', 'UTF-8');
この結果を出力します:
Test: ěščřžýáíé
ただし、utf-8に戻そうとすると
echo mb_convert_encoding('Test: ěščřžýáíé', 'UTF-8', 'HTML-ENTITIES');
驚くべきことに、元の文字列ではなく、(間違った) 出力が得られます。
Test: ěščřžýáĂĂ©
エンコーディングを適切に変換して元の文字列を取り戻すにはどうすればよいですか?