我很难过为什么会这样。 如果我输入诸如“ÄÖÜß”之类的文本(它会被存储到数据库中),然后转换为html实体,当我运行时
$html['address_array'] = array_map("html_entity_decode", $html['address_array']);
这会将html实体“ÄÖÜß”转换为“ƒ÷
答案 0 :(得分:2)
您遇到了文字编码问题。最可能的可能是您的文本被解释为Mac OS Roman - ÄÖÜß
编码为ISO8859-1 C4 D6 DC DF
;在解码为Mac OS Roman之后,它出现为ƒ÷‹fl
。最后一个字符与您的示例不同,但它足够接近,我怀疑它是匹配。
将编码传递给html_entity_decode
- 理想情况下为UTF-8 - 并确保您的页面使用了适当的字符集。由于您正在使用array_map
,因此传递编码有点尴尬;如果您使用现代版本的PHP,我建议:
$html["address_array"] = array_map(
function($x) {
return html_entity_decode($x, ENT_COMPAT, "UTF-8");
},
$html["address_array"]
);