这就是事情。我有像
这样友好的网址http://site.com/blog/read /мъдростта-на-вековете
最后一段实际上是博客文章的友好标题。问题是,当我尝试将该段传递到数据库时,西里尔字体变成类似%D1%8A%D0%B4%D1%80%D0%BE%D1%81%D1%8 并且无法匹配数据库记录。在浏览器的地址栏中,它看起来很正常(мъдростта-на-вековете),但如果我选择“复制网址”,最后一段再次变成这些奇怪的字符。我正在使用 CodeIgniter ,所有内容都设置为UTF-8。
请帮忙! :(
答案 0 :(得分:6)
答案 1 :(得分: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)));
这将解决上述问题以及控制器和功能。
答案 2 :(得分:2)
实际上, Firefox在这里欺骗你:网址实际上是网址编码,但显示为不是。因此,在服务器上复制粘贴和检索它将对URL进行编码。
(不确定其他浏览器的行为方式是否相同。)