sch*_*ino 2 php utf-8 html-entities mb-convert-encoding
我想将 html 实体转换为 UTF-8,但mb_convert_encoding会破坏已经 UTF-8 编码的字符。正确的方法是什么?
$text = "äöü ä ö ü ß";
var_dump(mb_convert_encoding($text, 'UTF-8', 'HTML-ENTITIES'));
// string(24) "äöü ä ö ü ß"
Run Code Online (Sandbox Code Playgroud)
mb_convert_encoding()不是您想要实现的正确功能:您确实应该使用html_entity_decode()代替,因为它只会将实际的 html 实体转换为 UTF-8,而不会影响现有的 UTF-8 字符在字符串中。
$text = "äöü ä ö ü ß";
var_dump(html_entity_decode($text, ENT_COMPAT | ENT_HTML401, 'UTF-8'));
Run Code Online (Sandbox Code Playgroud)
这使
string(18) "äöü ä ö ü ß"
Run Code Online (Sandbox Code Playgroud)