私は次のコードを持っています:
mb_convert_encoding($string, 'HTML-ENTITIES', 'utf-8');
まったく同じように動作するが、mb_ *関数を使用しない代替コードが必要です(mb拡張機能は一部の環境では使用できません)。
と思った
utf8_decode(htmlentities($string, ENT_COMPAT, 'utf-8'));
まったく同じことをする必要がありますが、残念ながらそうではありません。
私は次のコードを持っています:
mb_convert_encoding($string, 'HTML-ENTITIES', 'utf-8');
まったく同じように動作するが、mb_ *関数を使用しない代替コードが必要です(mb拡張機能は一部の環境では使用できません)。
と思った
utf8_decode(htmlentities($string, ENT_COMPAT, 'utf-8'));
まったく同じことをする必要がありますが、残念ながらそうではありません。
少し遊んだのですが、これはとても面白いと思います。2番目の部分も「htmlspecialchars」を実行しているようです。htmlentitiesが正しく実行されないため、mb_convert_encodingのバグである必要があります。
結果に対してhtmlspecialchars_decodeを実行すると、mb_convert_encodingを使用する場合とまったく同じになります。
コード:
$string = 'Test:!"$%&/()=ÖÄÜöäü<<';
echo mb_convert_encoding($string, 'HTML-ENTITIES', 'utf-8')."\n\n";
echo htmlspecialchars_decode(utf8_decode(htmlentities($string, ENT_COMPAT, 'utf-8', false)));
上記のコードのデモは次のとおりです: http ://sandbox.onlinephpfunctions.com/code/715acade3b8337d9c9e48e58deee2a237015c259
そしてここにあなたの問題を示すためにhtmlspecialchars_decodeなしのデモがあります: http ://sandbox.onlinephpfunctions.com/code/5c4a32bf99aa8fd6246c4a77132a023d32945363