2011-02-07 22 views
2

這是事情。我有友好的URL一樣友好URL中的西里爾字符問題

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

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

最後一段實際上是博客文章的標題友好。問題是當我嘗試將該段傳遞給數據庫時,西里爾文字體變成類似%D1%8A%D0%B4%D1%80%D0%BE%D1%81%D1%8並且cann' t匹配數據庫記錄。在我的瀏覽器地址欄中,它看起來很正常(мъдростта-на-вековетет),但是如果我選擇'複製URL位置',最後一段再次變成這些奇怪的字符。我正在使用CodeIgniter並且一切都設置爲UTF-8。

請幫忙! :(

+0

在URL中不允許非英文字符,因此,沒有辦法。 – 2011-02-07 20:17:31

回答

5

的文本只是被編碼到適合的URL規範。

回聲出數據記錄到日誌,看看有什麼你實際上是試圖傳遞給數據庫。

你應該。能夠將其與urldecode解碼

2

其實,火狐在這裏騙你:該URL實際上是URL編碼,但顯示爲如果不是這樣的複製粘貼和檢索它的服務器上會。有編碼的URL。

(不知道其他瀏覽器以同樣的方式行事。)

4

以上答案是好的,但如果你想使用西里爾路由是不夠的。例如,如果你有http://site.com /блог/статия/мъдростта-на-вековете你將不得不做這樣的事情:

config/routes.php$route['блог/статия/(:any)'] = "blog/article/$1";

system/core/URI.php,在function _explode_segments(),你可以改變

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

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

這將解決上述問題加上控制器和功能。