特殊字符会破坏分页链接

发布于 2024-12-08 01:15:37 字数 847 浏览 1 评论 0原文

特殊字符和分页

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

陌路终见情 2024-12-15 01:15:37

ñ 在 html 实体中是 %F1,所以这没有错,奇怪的是它破坏了分页,之前你不能将 ñáéíóú 放在 url 中,所以使用 urlencode 你总是可以使用 ulrdecode 所以它显示 –

echo urldecode($this->paginator->next(' Siguiente > ', null, ' Siguiente > ', array('class' => 'disabled')));

cakephp 的做法是将 escape 选项设置为false 因此它不会放置 html 实体而不是像这样的 ñ

echo $this->paginator->next(' Siguiente > ', array('escape'=>false), ' Siguiente > ', array('class' => 'disabled'));

确保这不会因任何参数而中断: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 ñ

echo urldecode($this->paginator->next(' Siguiente > ', null, ' Siguiente > ', array('class' => 'disabled')));

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

echo $this->paginator->next(' Siguiente > ', array('escape'=>false), ' Siguiente > ', array('class' => 'disabled'));

make sure this doesn't break with any parameter :D

look the api for more info

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文