2011-02-07 17 views
2

ここが問題です。私は、最後のセグメントは、実際にブログ記事の友好タイトルですフレンドリーなURLにキリル文字が付いている問題

http://site.com/blog/read /мъдростта-на-вековете

http://site.com/blog/read/green-apple

のようなフレンドリーなURLを持っています。問題は、データベースにそのセグメントを渡そうとするとき、キリル文字のフォントが%D1%8A%D0%B4%D1%80%D0%BE%D1%81%D1%8のようになり、データベースレコードと一致しません。私のブラウザのアドレスバーには普通のように見えますが(мъдростта-на-вековете)、私が「URLの場所をコピーする」を選択した場合、最後のセグメントは再びこれらの変な文字に変わります。私はCodeIgniterを使用しており、すべてがUTF-8に設定されています。

助けてください! :(

+0

英語以外の文字はURLに使用できないため、方法はありません。実際には –

+1

が許可されています –

答えて

5

テキストだけでURLの仕様に合わせてエンコードされている。

は、あなたが実際にデータベースに渡すしようとしているものを見るためにログにデータをエコーし​​ます。

あなたはする必要がありますurldecodeでそれをデコードすることができ

2

実際には、Firefoxがあなたをここに浮気されています。うURLは実際にはURLエンコードですが、それはなかったかのように示されているので、コピー&ペーストをして、サーバー上で、それを取り出します。 URLをエンコードしてください。

(他のブラウザが同じように振る舞うかどうかわからない。)

4

上記の答えはOKですが、あなたはキリル文字でルーティングを使用する場合、それは十分ではありません。

config/routes.phpで:あなたはhttp://site.com /блог/статия/мъдростта-на-вековетеを持っている場合たとえば、あなたはこのような何か行う必要がありますfunction _explode_segments()で、変更することができ、system/core/URI.php$route['блог/статия/(:any)'] = "blog/article/$1";

$val = urldecode(trim($this->_filter_uri($val))); 

これに

$val = trim($this->_filter_uri($val)); 

コントローラと機能を加えた上記の問題を解決します。

関連する問題