特殊字符会破坏分页链接
特殊字符和分页
我正在使用 cakephp 和 charset=iso-8859-1。我知道,我很想使用 UTF-8,但这将是一个更大的问题。
问题是,当我有像“ñ”这样的特殊字符时,分页链接就会中断。
如果我不使用任何特殊字符,分页效果很好。
控制器
$this->paginate = array(
'limit' => self::MAX_PRODUCTOS_POR_PAGINA,
'order' => 'Producto.id DESC',
'conditions' => array($conditions, 'Producto.visible' => true)
);
$this->set('productos', $this->paginate());
视图:
echo $this->paginator->next(' Siguiente > ', null, ' Siguiente > ', array('class' => 'disabled'));
用于“下一页”链接
我应该得到这个链接:
http://mysite.com.ar/Productos/buscar/señuelos/page:2
相反,我得到:
http://mysite.com.ar/Productos/buscar/se%F1uelos
有什么想法吗?
Special Characters and Pagination
I'm using cakephp with charset=iso-8859-1. I know, I'd love to be using UTF-8, but this would be a bigger problem.
The thing is, when I have a special character like "ñ" the pagination links break.
If I don't use any special characters, pagination works fine.
The controller
$this->paginate = array(
'limit' => self::MAX_PRODUCTOS_POR_PAGINA,
'order' => 'Producto.id DESC',
'conditions' => array($conditions, 'Producto.visible' => true)
);
$this->set('productos', $this->paginate());
The View:
echo $this->paginator->next(' Siguiente > ', null, ' Siguiente > ', array('class' => 'disabled'));
For the "next page" link
I should get this link:
http://mysite.com.ar/Productos/buscar/señuelos/page:2
Instead, I'm getting:
http://mysite.com.ar/Productos/buscar/se%F1uelos
Any Ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ñ 在 html 实体中是 %F1,所以这没有错,奇怪的是它破坏了分页,之前你不能将 ñáéíóú 放在 url 中,所以使用 urlencode 你总是可以使用 ulrdecode 所以它显示 –
cakephp 的做法是将 escape 选项设置为false 因此它不会放置 html 实体而不是像这样的 ñ
确保这不会因任何参数而中断:D
查看 api 的 更多信息
ñ is %F1 in html entity so thats not wrong, it's weird that it broke the pagination, before you couldn't put ñáéíóú in urls so urlencode was used you can always use ulrdecode so it shows ñ
The cakephp way of doing it would be to set the escape option to false so it won't put a html entity instead of the ñ like this
make sure this doesn't break with any parameter :D
look the api for more info