php – 如何转换HTML实体 – 他们的字符等价物?

我正在创建一个要保存在本地用户的计算机上的文件(不在Web浏览器中呈现).

我目前使用的是html_entity_decode,但是这不是转换像#amp;#8211; (这是n-dash),并且想知道我应该使用什么其他功能.

例如,当文件导入软件时,而不是ndash或只是 – 它显示为–我知道我可以使用str_replace,但是如果这个字符发生了,它可能会与许多其他人一起发生,因为数据是动态的.

最佳答案
您需要定义目标字符集. &安培;#8211;在默认的ISO-8859-1字符集中不是有效的字符,所以它没有被解码.将UTF-8定义为输出字符集,并解码:

echo html_entity_decode('–', ENT_NOQUOTES, 'UTF-8');

如果可能,您应该避免HTML实体开始.我不知道哪个编码数据来自哪里,但是如果您将数据存储在数据库或其他地方,那么您做错了.始终存储数据UTF-8编码,并且只有在必要时转换为HTML实体或以其他方式转义输出.

转载注明原文:php – 如何转换HTML实体 – 他们的字符等价物? - 代码日志