我想将html实体转换为UTF-8,但mb_convert_encoding
已经破坏了UTF-8编码的字符。什么是正确的方法?
$text = "äöü ä ö ü ß";
var_dump(mb_convert_encoding($text, 'UTF-8', 'HTML-ENTITIES'));
// string(24) "äöü ä ö ü ß"
答案 0 :(得分:4)
SELECT * FROM information_schema.tables
不是您正在尝试实现的正确功能:您应该使用html_entity_decode()代替,因为它只会将实际的html实体转换为UTF -8,并且不会影响字符串中现有的UTF-8字符。
mb_convert_encoding()
给出了
$text = "äöü ä ö ü ß";
var_dump(html_entity_decode($text, ENT_COMPAT | ENT_HTML401, 'UTF-8'));
答案 1 :(得分:0)
在我的localhost中,我得到string(18) "äöü ä ö ü ß"
。
我认为这与您的页面编码有关。使用Notepad ++编辑文件,然后从工具栏转到编码并更改为“在ANSI中编码”。如果它不起作用,那么尝试使用'无BOM的UTF-8编码'。
答案 2 :(得分:0)
如果仍然无效,请尝试此
html_entity_decode($html, ENT_QUOTES, 'cp1252');
这是Windows IIS系统上需要开始正常工作的内容。 see source