htmlentities 和 htmlspecialchar 功能都是转换HTML代码至普通的字符,而HTML代码中包含中文时,使用 htmlentities会产生乱码,而 htmlspecialchar 不会。 很明显,htmlspecialchar转化时只针对特定的字符。PHP手册上的解释:

htmlspecialchars ── Convert special characters to HTML entities
htmlentities ── Convert all applicable characters to HTML entities