特殊字符打破了分页链接

时间:2011-10-03 20:37:29

标签: cakephp pagination special-characters

特殊字符和分页

我正在使用带有charset = iso-8859-1的cakephp。我知道,我很想使用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

任何想法?

1 个答案:

答案 0 :(得分:0)

ñ是html实体中的%F1,所以没有错,在你无法将ñáéíóú放入网址之前打破分页是很奇怪的,因此使用了urlencode你可以随时使用ulrdecode所以它显示了ñ< / p>

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

查看more info

的api