php - 如何转换字符串中的 Word 智能引号和长破折号?

标签 php unicode smart-quotes

我有一个带有文本区域的表单。用户输入存储在数据库中的一段文本。

有时,用户会从 Word 中粘贴包含弯引号或破折号的文本。这些字符在数据库中显示为:—€“、”、“、”

我应该在输入字符串上调用什么函数来将智能引号转换为常规引号并将短划线转换为常规破折号

我在 PHP 工作。

更新:感谢迄今为止所有的精彩回复。 Joel 网站上关于编码的页面非常有用:http://www.joelonsoftware.com/articles/Unicode.html

关于我的环境的一些注意事项:

MySQL 数据库使用 UTF-8 编码。同样,显示内容的 HTML 页面通过显式设置元内容类型使用 UTF-8(更新:)。

在这些页面上,智能引号和破折号显示为带问号的菱形。

解决方法:

再次感谢您的回复。解决方案有两个:

  1. 确保数据库和 HTML 文件被明确设置为使用 UTF-8 编码。
  2. 使用 htmlspecialchars() 而不是 htmlentities().

最佳答案

这听起来像是一个 Unicode 问题。 Joel Spolsky 在这个话题上有一个很好的起点:http://www.joelonsoftware.com/articles/Unicode.html

关于php - 如何转换字符串中的 Word 智能引号和长破折号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/175785/

相关文章:

java - 如何根据字符集验证字符串?

mysql - iconv 给 "Illegal Character"加上智能引号——如何去掉它们?

python - 如何将 unicode 更改为 ascii 并删除无法识别的字符

python - 输出文件中的垃圾字符(引号等)

php - 在 PHP 中将 Microsoft 弯引号转换为直引号

php - PostgresQL从多维数组类型的Json字段中取数据

php - 将数组从 Flash 传递到 PHP

php - Laravel - 采摘变异属性

php - 使用 PHP 扩展 IPv6 地址的快速方法

python - 将字符转换为 unicode