我有一个表单和一个文本区域。用户输入一些文本,这些文本被存储在数据库中。
偶尔,用户会从Word中粘贴包含智能引号或破折号的文本。这些字符会出现在数据库中,例如:–, ’, “, â€
我应该调用哪个函数来将智能引号转换为普通引号和破折号转换为普通短横线?
我在使用PHP。
更新:非常感谢目前为止所有的回复。Joel网站上有关编码的页面非常有启发性:http://www.joelonsoftware.com/articles/Unicode.html
我的环境方面还有一些注意事项:
MySQL数据库使用UTF-8编码。同样,显示内容的HTML页面也使用UTF-8(更新:)通过明确设置meta content-type。
在这些页面中,智能引号和破折号显示为带有问号的菱形。
解决方法:
再次感谢所有的回复。解决方案有两个:
- 确保数据库和HTML文件明确设置为使用UTF-8编码。
- 使用
htmlspecialchars()
而不是htmlentities()
。