0

非 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');に印刷されます。 だから私は問題が関数 url_cevir から来ていると思いますそして、私は非常に単純なものが欠けていると思います。そうでなければ、それは非常に興味深い問題です。ısı geçişi

4

1 に答える 1

1

リテラル文字をソース ファイルに入れると、実際のソース ファイルのエンコーディングが重要になります。

ソースファイルのエンコーディングが異なると思います。テキストエディタの設定を確認してください。

于 2012-12-24T18:30:19.843 に答える