我有一个带有文本区域的表格。用户输入存储在数据库中的文本块。
有时,用户会从 Word 中粘贴包含智能引号或短划线的文本。这些字符在数据库中显示为: –, ’, “ ,â€</p>
我应该在输入字符串上调用什么函数来将智能引号转换为常规引号并将 emdashes 转换为常规破折号?
我在 PHP 中工作。
更新:感谢迄今为止所有出色的回应。Joel 网站上关于编码的页面信息量很大: http: //www.joelonsoftware.com/articles/Unicode.html
关于我的环境的一些注意事项:
MySQL 数据库使用 UTF-8 编码。同样,显示内容的 HTML 页面通过显式设置元内容类型使用 UTF-8(更新:)。
在这些页面上,智能引号和破折号显示为带有问号的菱形。
解决方案:
再次感谢您的回复。解决方案是双重的:
- 确保数据库和 HTML 文件已明确设置为使用 UTF-8 编码。
- 使用
htmlspecialchars()
而不是htmlentities()
.