【问题标题】:How to remove unwanted ascii characters from string?如何从字符串中删除不需要的 ascii 字符?
【发布时间】:2016-02-01 10:34:22
【问题描述】:

我有一个如下所示的字符串

$string1="then & add â...“ to";

特殊 ascii 字符 â “ Â 等导致错误。

所以我想知道有什么默认功能或方法可以删除这些字符吗?

处理后的预期输出:

$string1="then & add … to";

【问题讨论】:

  • 你只是想删除它们而不是替换它们?
  • @lurker ya 只是想删除这些字符。
  • @lurker 不,我的问题不同。检查我的问题中的示例字符串。和预期的输出。 (见编辑)
  • this question 怎么样?我认为对其他问题中的内容进行细微调整可以解决您的问题。基本上是同样的问题。另外,在您的示例中,... 是什么?有一个表示省略号的特殊字符,但我不知道这是您的意思还是只是显示“其他字符到这里”。

标签: php string special-characters


【解决方案1】:
$str = 'aAÂ';
$str = preg_replace('/[[:^print:]]/', '', $str);

这是我想要的解决方案。感谢大家尝试帮助我。 remove non-ascii characters from string in php

【讨论】:

    【解决方案2】:

    您需要在 php.ini 中安装并启用 mb_string(现在默认设置)。在 centos 上安装 php-mbstring 包并重新启动 web 服务器,如果通过 web 运行。

    <?php
    
    $string = "aâ";
    
    print $string . "\n";
    
    $length = mb_strlen( $string );
    $index = 0;
    
    $output = '';
    
    while( $index < $length )
    {
       $char = $string[$index];
    
       if( mb_check_encoding( $char, 'ASCII') )
       {
          $output .= $string[$index];
       }
       $index++;
    }
    
    print $output . "\n";
    ?>
    

    结果:

    aâ
    a
    

    对于用下划线替换字符,如果检查编码不返回1,您可以修改代码以将'_'附加到字符串。

    http://php.net/manual/en/book.mbstring.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-24
      • 2012-01-21
      • 1970-01-01
      • 2016-06-29
      • 2011-08-13
      相关资源
      最近更新 更多