【问题标题】:PHP: regular expression to remove `â` or `â€`?PHP:正则表达式删除`â`或`â€`?
【发布时间】:2011-06-13 07:01:36
【问题描述】:

我使用这个正则表达式从字符串输入中删除所有标点符号,

$pg_url = preg_replace("/\W+/", " ", $pg_url); 

但有些符号或特殊字符我无法删除,例如

当我将它传递给我的数据库注入时,它会变成ââ€

我怎样才能摆脱这些奇怪的东西?

谢谢。

【问题讨论】:

  • 听起来更像是数据库字符集问题...
  • 你肯定遇到了字符编码问题。确保您的应用程序的所有部分都使用相同的字符编码,并且问题应该会消失。
  • 这个“奇怪的东西”是人们傲慢地没有用 7 位英文编码的文本碰巧相处。让你的字符编码直接,它们不会被破坏。
  • 非常感谢。现在用 iconv 对其进行排序! :-)

标签: php regex preg-replace special-characters


【解决方案1】:

这些字符以Unicode 编码,特别是UTF-8

您可能需要考虑使用函数的iconv family 将它们转换为其他编码(例如,首先使用纯 ASCII)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多