我想更换
mb_convert_encoding($string, 'utf-8', 'HTML-ENTITIES');
因为我没有安装mb模块,无法安装。有什么吗?我尝试了utf8_decode($string),但没有成功。
这与列出的问题不同,因为它试图做相反的事情。
我想取一个字符串,例如,带ä在UTF8中,并将其转换为ä;或其HTML实体作为#
如果没有mb_convert_encoding
,可以尝试使用preg_replace_callback
到UCS-4
对string
进行编码,然后使用bin2hex
,类似于:
$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! ★
您可以考虑使用MBStringPolyfill库。即使您的平台上没有安装扩展,此库也会添加MBString方法。