我有一个带有文本区域的表单。用户输入存储在数据库中的一段文本。
有时,用户会从 Word 中粘贴包含弯引号或破折号的文本。这些字符在数据库中显示为:—€“、”、“、”
我应该在输入字符串上调用什么函数来将智能引号转换为常规引号并将短划线转换为常规破折号?
我在 PHP 工作。
更新:感谢迄今为止所有的精彩回复。 Joel 网站上关于编码的页面非常有用:http://www.joelonsoftware.com/articles/Unicode.html
关于我的环境的一些注意事项:
MySQL 数据库使用 UTF-8 编码。同样,显示内容的 HTML 页面通过显式设置元内容类型使用 UTF-8(更新:)。
在这些页面上,智能引号和破折号显示为带问号的菱形。
解决方法:
再次感谢您的回复。解决方案有两个:
- 确保数据库和 HTML 文件被明确设置为使用 UTF-8 编码。
- 使用
htmlspecialchars()
而不是htmlentities()
.
最佳答案
这听起来像是一个 Unicode 问题。 Joel Spolsky 在这个话题上有一个很好的起点:http://www.joelonsoftware.com/articles/Unicode.html
关于php - 如何转换字符串中的 Word 智能引号和长破折号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/175785/