为何htmlspecialchars函数无法转换单引号?
解决htmlspecialchars转换单引号无效的问题
首先咱们先理清楚:ENT_QUOTES参数确实是让htmlspecialchars()同时转换双引号和单引号的,理论上你的代码应该能把单引号转成'(PHP 5.4及以上版本可能转成')。你觉得没成功,大概率是这几个原因:
- 你在浏览器里直接看页面内容,而非源代码:浏览器会自动把HTML实体解析成对应的字符,所以你看到的还是单引号,但实际上转换已经完成了。右键页面→查看页面源代码,就能看到转换后的实体字符了。
- 缺少字符集参数:
htmlspecialchars()默认使用ISO-8859-1编码,如果你页面用的是UTF-8,最好加上第三个参数指定编码,避免潜在的编码兼容问题。修改后的代码如下:echo htmlspecialchars("Housemade Mac N' Cheese", ENT_QUOTES, 'UTF-8'); - PHP版本过低(可能性极低):如果你的PHP版本低于4.3.0,
ENT_QUOTES的行为可能存在差异,但现在几乎没人使用这么老旧的版本了。
你可以先试试查看页面源代码,或者加上UTF-8参数再测试,应该就能看到预期的转换效果了。
内容的提问来源于stack exchange,提问作者Json
相关产品推荐
相关产品推荐

