我有以下代码:
mb_convert_encoding($string, 'HTML-ENTITIES', 'utf-8');我需要一个完全相同但不使用任何mb_*函数( mb扩展在某些环境中不可用)的替代代码。
我还以为
utf8_decode(htmlentities($string, ENT_COMPAT, 'utf-8'));应该做的完全一样,但不幸的是它没有。
发布于 2012-08-16 06:41:24
我尝试了一下,发现这很有趣。第二部分似乎也运行"htmlspecialchars“。一定是mb_convert_encoding中的一些错误,因为htmlentities没有正确运行。
如果对结果运行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
https://stackoverflow.com/questions/11974008
复制相似问题