【问题标题】:How to get rid of the non-english letters on the string?如何去掉字符串上的非英文字母?
【发布时间】:2011-08-22 04:32:50
【问题描述】:

我想用字符串中的英文字符去掉土耳其字符,这就是我写的函数。但是,在服务器中,它无法识别这些字母。有什么建议吗?

function strtolower_tr($string)
    {
        $low=array("Ü" => "U","ü" => "u", "Ö" => "O","ö" => "o", "Ğ" => "G","ğ" => "g", "Ş" => "S","ş" => "s", "Ç" => "C","ç" => "c", "İ" => "I","i" => "i", "I" => "i","I" => "I");
        return strtolower(strtr($string,$low));
    }

-------在服务器中-------

$low=array("?~\" => "u?", "?~V" => "o?", "?~^" => "g", "?~^" => "s", "?~G" => "c", "İ" => "i", "I" => i");

已编辑:

我发现了这个:但是,它不适用于字母 'ı' 和 'I' setlocale(LC_ALL, 'en_US.UTF8'); 函数 clearUTF($s) { $r = ''; $s1 = @iconv('UTF-8', 'ASCII//TRANSLIT', $s); $j = 0; 对于 ($i = 0; $i $ch2) { --$j; 继续; } } $r .= ($ch1=='?') ? $ch2 : $ch1; } 返回 $r; }

【问题讨论】:

  • 我找到了这个,但是有一个问题它不适用于字符 'ı'setlocale(LC_ALL, 'en_US.UTF8');函数 clearUTF($s) { $r = ''; $s1 = @iconv('UTF-8', 'ASCII//TRANSLIT', $s); $j = 0; for ($i = 0; $i $ch2) { --$j; continue; } } $r .= ($ch1== '?') ? $ch2 : $ch1; } return $r; }
  • 你为什么要这样做?

标签: php special-characters turkish


【解决方案1】:

你的文件是 utf 编码的吗?您应该对源文件使用 utf 编码,这将解决您的问题。

【讨论】:

  • 您可以使用许多编辑器之一,例如 CodeLobster、Notepad++、Zend IDE 等,您可以在其中严格设置首选编码。
猜你喜欢
  • 2012-01-24
  • 1970-01-01
  • 2020-06-14
  • 2012-01-24
  • 2020-04-14
  • 1970-01-01
  • 1970-01-01
  • 2017-11-21
  • 2018-01-31
相关资源
最近更新 更多