我希望更换
mb_convert_encoding($string, 'utf-8', 'HTML-ENTITIES');
与其他东西,因为我没有安装mb模块,无法安装它。有没有什么?我尝试了utf8_decode($ string),但这不起作用。
这与列出的问题不同,因为它试图反过来。
我想用一个字符串,例如,在UTF8中使用ä并将其转换为& auml;或其HTML实体为& #num;
答案 0 :(得分:0)
如果您没有mb_convert_encoding
,可以尝试使用preg_replace_callback
UCS-4
对string
进行编码,然后使用bin2hex
,例如:< / p>
$string = "★ PHP UTF-8 Sucks! ★";
$entity = preg_replace_callback('/[\x{80}-\x{10FFFF}]/u', function ($m) {
$char = current($m);
$utf = iconv('UTF-8', 'UCS-4', $char);
return sprintf("&#x%s;", ltrim(strtoupper(bin2hex($utf)), "0"));
}, $string);
echo $entity;
★ PHP UTF-8 Sucks! ★
答案 1 :(得分:0)
您可以考虑使用MBString Polyfill library。 即使您的平台上没有安装扩展,此库也会添加MBString方法。
答案 2 :(得分:-1)
我可以通过以下方法解决我的问题:
htmlspecialchars_decode( html_entity_decode( html_entity_decode( $string, ENT_QUOTES | ENT_XML1, 'UTF-8' ) ) );