Acentos en URL

990 views
Skip to first unread message

Nahuel Bulian

unread,
Feb 25, 2009, 11:43:15 AM2/25/09
to codeignit...@googlegroups.com
Querida lista.
Me gustaría saber que método utilizan cuando tienen que pasar algún paramentó que contenga letras con acentos en una URI, como ustedes saben estos caracteres especiales son reconocidos por CI como ¡caracteres locos! (The URI you submitted has disallowed characters.)

--
Saludos
NB.
MSN: NBu...@GMail.com
GTalk: NBu...@GMail.com

Antes de imprimir, pensá en el medio ambiente.
Before printing, think about the environment.
Avant d'imprimer, pensez à l'environnement.

Pedro Navarro Monter

unread,
Feb 25, 2009, 11:45:45 AM2/25/09
to codeignit...@googlegroups.com


2009/2/25 Nahuel Bulian <nbu...@gmail.com>

En la carpeta system/application/config/ te vas a encontrar el archivo config.php
Dentro de este está un arreglo llamado  $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
Dentro de este, puedes especificar los caracteres permitidos en las URIs, me parece que tiene algo que ver con expresiones regulares, pero honestamente, no he tenido necesidad de moverle.

--
-----BEGIN GEEK CODE BLOCK-----
GCS !d- s++:++ a? c+++ BL u+++ P+ L+ E! W+++
N O? W! O M V? PS PE++ Y PGP+ T S? X++ R? tv-
b DI+++ D+ G++ e++ h---- y+-- z+
------END GEEK CODE BLOCK------

Nahuel Bulian

unread,
Feb 25, 2009, 12:00:53 PM2/25/09
to codeignit...@googlegroups.com
Pedro, primero que nada gracias por tu respuesta.
Efectivamente, modificando la variable permitted_uri_chars en el config podemos hacer que acepte, por ejemplo los acentos... pero imaginate una web donde además de castellano e ingles se acepte portugués y alemán... tendría que agregar una cantidad gigante de caracteres en esa variable... me imagino que debe haber alguna forma mas adecuada de hacerlo, si alguno tiene otra alternativa sera bienvenida.

NB.

Pedro Navarro Monter

unread,
Feb 25, 2009, 12:11:19 PM2/25/09
to codeignit...@googlegroups.com


2009/2/25 Nahuel Bulian <nbu...@gmail.com>
Claro, puedes utilizar la flexibilidad de CI en tu favor para hacer multilenguaje tu sistema, no recuerdo sí el proyecto de bamboo invoice traía algo de eso, pero sí era multi lenguaje.
Espero haya sido de ayuda mi respuesta y gracias a ti.

Pedro Navarro Monter

unread,
Feb 25, 2009, 12:13:41 PM2/25/09
to codeignit...@googlegroups.com
http://www.noquieroprogramar.com/sistema-de-usuarios-segunda-parte-clase-centinela-i/
De hecho en este site, me encontré varias formas de hacer las cosas, espero sirva de algo. Saludos.

josepzin

unread,
Feb 25, 2009, 4:06:37 PM2/25/09
to CodeIgniter-spanish
?Para esto no convendría usar urlencode, de PHP?

http://es.php.net/manual/es/function.urlencode.php



On Feb 25, 6:13 pm, Pedro Navarro Monter <g33k...@gmail.com> wrote:
> 2009/2/25 Pedro Navarro Monter <g33k...@gmail.com>
>
>
>
>
>
> > 2009/2/25 Nahuel Bulian <nbul...@gmail.com>
>
> >> Pedro, primero que nada gracias por tu respuesta.
> >> Efectivamente, modificando la variable permitted_uri_chars en el config
> >> podemos hacer que acepte, por ejemplo los acentos... pero imaginate una web
> >> donde además de castellano e ingles se acepte portugués y alemán... tendría
> >> que agregar una cantidad gigante de caracteres en esa variable... me imagino
> >> que debe haber alguna forma mas adecuada de hacerlo, si alguno tiene otra
> >> alternativa sera bienvenida.
>
> >> NB.
>
> >> El 25 de febrero de 2009 14:45, Pedro Navarro Monter <g33k...@gmail.com>escribió:
>
> >>> 2009/2/25 Nahuel Bulian <nbul...@gmail.com>
>
> >>> Querida lista.
> >>>> Me gustaría saber que método utilizan cuando tienen que pasar algún
> >>>> paramentó que contenga letras con acentos en una URI, como ustedes saben
> >>>> estos caracteres especiales son reconocidos por CI como ¡caracteres locos!
> >>>> (The URI you submitted has disallowed characters.)
>
> >>>> --
> >>>> Saludos
> >>>> NB.
> >>>> MSN: NBul...@GMail.com
> >>>> GTalk: NBul...@GMail.com
>
> >>>> Antes de imprimir, pensá en el medio ambiente.
> >>>> Before printing, think about the environment.
> >>>> Avant d'imprimer, pensez à l'environnement.
>
> >>> En la carpeta system/application/config/ te vas a encontrar el archivo
> >>> config.php
> >>> Dentro de este está un arreglo llamado  $config['permitted_uri_chars'] =
> >>> 'a-z 0-9~%.:_\-';
> >>> Dentro de este, puedes especificar los caracteres permitidos en las URIs,
> >>> me parece que tiene algo que ver con expresiones regulares, pero
> >>> honestamente, no he tenido necesidad de moverle.
>
> >>> --
> >>> -----BEGIN GEEK CODE BLOCK-----
> >>> GCS !d- s++:++ a? c+++ BL u+++ P+ L+ E! W+++
> >>> N O? W! O M V? PS PE++ Y PGP+ T S? X++ R? tv-
> >>> b DI+++ D+ G++ e++ h---- y+-- z+
> >>> ------END GEEK CODE BLOCK------
>
> >> --
> >> Saludos
> >> NB.
> >> MSN: NBul...@GMail.com
> >> GTalk: NBul...@GMail.com
>
> >> Antes de imprimir, pensá en el medio ambiente.
> >> Before printing, think about the environment.
> >> Avant d'imprimer, pensez à l'environnement.
>
> >> Claro, puedes utilizar la flexibilidad de CI en tu favor para hacer
> > multilenguaje tu sistema, no recuerdo sí el proyecto de bamboo invoice traía
> > algo de eso, pero sí era multi lenguaje.
> > Espero haya sido de ayuda mi respuesta y gracias a ti.
>
> > --
> > -----BEGIN GEEK CODE BLOCK-----
> > GCS !d- s++:++ a? c+++ BL u+++ P+ L+ E! W+++
> > N O? W! O M V? PS PE++ Y PGP+ T S? X++ R? tv-
> > b DI+++ D+ G++ e++ h---- y+-- z+
> > ------END GEEK CODE BLOCK------
>
> http://www.noquieroprogramar.com/sistema-de-usuarios-segunda-parte-cl...

Nahuel Bulian

unread,
Feb 25, 2009, 5:24:06 PM2/25/09
to codeignit...@googlegroups.com
La probe, pero pierde funcionalidad cuando la usas en las URI de CI.
--
Saludos
NB.
MSN: NBu...@GMail.com
GTalk: NBu...@GMail.com

josepzin

unread,
Feb 26, 2009, 5:45:27 AM2/26/09
to CodeIgniter-spanish
Ha, veo que no es lo que pensaba... tu pregunta es que quieres crear
una url que sea algo así: http://pepe.com/que-gustón-mi-mansión, así
con acentos...

¿Y porque no haces esto: http://pepe.com/que-guston-mi-mansion?

Simplemente conviertes los acentos a su equivalente sin acentos y te
olvidas de historias raras :D

On Feb 25, 11:24 pm, Nahuel Bulian <nbul...@gmail.com> wrote:
> La probe, pero pierde funcionalidad cuando la usas en las URI de CI.
>

BARBAZUL

unread,
Feb 26, 2009, 6:44:30 AM2/26/09
to codeignit...@googlegroups.com
de hecho eso es lo que hace la mayoria de los blogs conocidos, como blogger x ej.
Limpian el titulo poniendo guiones y sacando tildes y enies y con eso arman el link
Para hacer esto te recomiendo que uses strtr() que te permite traducir de una lista de caracteres a otra

2009/2/26 josepzin <jose...@gmail.com>



--
Matías Montes

Web developer

Nahuel Bulian

unread,
Feb 26, 2009, 7:26:04 AM2/26/09
to codeignit...@googlegroups.com
Gracias a todos por las respuestas.
josepzin, no me convence tener que programar una función para los tildes y "enies", ya que para castellano seria fácil hacerlo, pero que pasaría con Alemán, Francés, etc... por cada idioma tendría que realizar una función, y no me parece óptimo...

Preguntando en el Foro de CI me recomendaron esta función:

http://codeigniter.com/forums/viewthread/101993/

La misma trabaja tal cual comenta BARBAZUL.

Abrazo para todos.
NB.
--
Saludos
NB.
MSN: NBu...@GMail.com
GTalk: NBu...@GMail.com

josepzin

unread,
Feb 26, 2009, 10:15:23 AM2/26/09
to CodeIgniter-spanish
Buen enlace :)

Yo tengo mi version de este tema, hace bastante ya que hice un
agregado al helper que tiene url_title.

Yo necesitaba una solución puntual e hice esto, seguro que hay muchas
maneras mejores de hacerlo y esa del enlace parece una solución
definitiva. Igual aqui dejo mi chapuza rapida, para el que le sirva.

my_url_helper.php:

if ( ! function_exists('enhanced_url_title'))
{
function enhanced_url_title($title = '')
{
$CI =& get_instance();

$title = utf8_decode($title);
$title = strtolower($title);

// convert áéíóúñ -> aeioun
$invalid = array('á', 'é', 'í', 'ó', 'ú', 'ñ', '.');
$valid = array('a', 'e', 'i', 'o', 'u', 'n', '');
$title = str_replace($invalid, $valid, $title);

return url_title($title);
}
}


On 26 feb, 13:26, Nahuel Bulian <nbul...@gmail.com> wrote:
> Gracias a todos por las respuestas.
> josepzin, no me convence tener que programar una función para los tildes y
> "enies", ya que para castellano seria fácil hacerlo, pero que pasaría con
> Alemán, Francés, etc... por cada idioma tendría que realizar una función, y
> no me parece óptimo...
>
> Preguntando en el Foro de CI me recomendaron esta función:
>
> http://codeigniter.com/forums/viewthread/101993/
>
> La misma trabaja tal cual comenta BARBAZUL.
>
> Abrazo para todos.
> NB.
>
> El 26 de febrero de 2009 9:44, BARBAZUL <tereva...@gmail.com> escribió:
>
>
>
> > de hecho eso es lo que hace la mayoria de los blogs conocidos, como blogger
> > x ej.
> > Limpian el titulo poniendo guiones y sacando tildes y enies y con eso arman
> > el link
> > Para hacer esto te recomiendo que uses strtr() que te permite traducir de
> > una lista de caracteres a otra
>
> > 2009/2/26 josepzin <joseza...@gmail.com>
>
> >> Ha, veo que no es lo que pensaba... tu pregunta es que quieres crear
> >> una url que sea algo así:http://pepe.com/que-gustón-mi-mansión<http://pepe.com/que-gust%C3%B3n-mi-mansi%C3%B3n>,
Reply all
Reply to author
Forward
0 new messages