在 PHP 中将 HTML 实体和特殊字符转换为 UTF8 文本

Gre*_*eso 6 php decode utf-8 html-entities htmlspecialchars

有很多关于在 PHP 中将 HTML 实体和特殊字符转换为 UTF8 文本的问题和文档。还有 PHP 文档本身,例如 thishtmlspecialchars_decode()和 this html_entity_decode()。但是,我找不到任何函数/解决方案清楚地描述如何将任何 HTML 字符和特殊实体转换为 UTF-8 文本。他们都说“如果你想这样做,那就这样做”等等。但没有任何解决方案指出“拥有人类可以阅读的纯 UTF-8 文本,然后这样做”。

我问的原因是我真的没有测试用例。我正在读取一个数据库,它是多语言的。然而,唯一的保证是字符是 HTML 格式的,我需要将它们转换为 UTF-8,以便理解这些语言的人可以阅读。现在,我该怎么做呢?清理/解码输入使其成为纯文本的正确方法是什么?

谢谢。


更新

这是一个更新,从评论中可以清楚地看出我没有正确地提出问题。我的数据库包含文本。我想将该文本(包含 HTML 实体和特殊字符)转换为可以在网页上向最终用户显示的 UTF-8 文本。数据库中的文本是用多种语言编写的(例如法语、阿拉伯语、英语等)。所有这些都可以包含特殊字符的 HTML 实体。那么我怎样才能将所有这些转换为 UTF-8 文本,以便理解这些语言的人可以阅读呢?我喜欢删除那些特殊字符并将它们转换为人类可以阅读的内容。

dev*_*wjk 15

这对我来说适用于将实体解码为 utf8:

html_entity_decode($str, ENT_QUOTES | ENT_HTML5, 'UTF-8');
Run Code Online (Sandbox Code Playgroud)

编辑:-- 它的“技巧”是第二个参数中的组合,并包括第三个参数中的编码。也就是说,如果你这样做,html_entity_decode($str);结果将不是 utf8。