什么是mb_convert_encoding($string,';utf-8';,';HTML-ENT


What is a replacement for mb_convert_encoding($string, 'utf-8', 'HTML-ENTITIES');?

我想更换

 mb_convert_encoding($string, 'utf-8', 'HTML-ENTITIES');

因为我没有安装mb模块,无法安装。有什么吗?我尝试了utf8_decode($string),但没有成功。

这与列出的问题不同,因为它试图做相反的事情。

我想取一个字符串,例如,带ä在UTF8中,并将其转换为ä或其HTML实体作为#

如果没有mb_convert_encoding,可以尝试使用preg_replace_callbackUCS-4string进行编码,然后使用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方法。