选择和替换非ASCII字符

时间:2012-12-24 18:23:40

标签: php utf-8 str-replace replace

我编写了一个简单的函数来替换非ASCII土耳其语字符。

function url_cevir($yazi) {
        $yazi = trim($yazi);

        $eski = array('ü','Ü','ö','Ö','ş','Ş','ç','Ç','ı','İ','ğ','Ğ',' ');
        $yeni = array('%C3%BC','%C3%9C','%C3%B6','%C3%96','%C5%9F','%C5%9E','%C3%A7','%C3%87','%C4%B1','%C4%B0','%C4%9F','%C4%9E','%20');


        return str_replace($eski,$yeni,$yazi);
    }

当我在我称之为的页面中定义它时,它确实有效。但是当我将它包含在外部页面时,它只会替换空格。

所有代码都在这里,没有其他代码可以污染这些

来自外部网页:

<?php

include('functions/array_and_string_fns.php');


echo url_cevir('ısı geçişi');
?>    

如果我将其与echo url_cevir('ısı geçişi');一起使用,则会打印ısı%20geçişi
如果我使用echo ('ısı geçişi');,则会按照我们的预期打印ısı geçişi 所以我认为问题来自功能url_cevir 我想我错过了很简单的事情。另外,这是一个非常有趣的问题。

1 个答案:

答案 0 :(得分:1)

将文字字符放入源文件时,实际源文件的编码会变得很重要。

我认为你的源文件有不同的编码。检查文本编辑器上的设置。