Foros del Web » Programando para Internet » PHP »

problema con acentos y ñ en nombre de archivos.

Estas en el tema de problema con acentos y ñ en nombre de archivos. en el foro de PHP en Foros del Web. tengo unos archivos que tienen acentos tipo, camión.php pero que para que se visualicen hay que poner: cami%f3n.php si pongo directamente camión.php no aparece nada. ...
  #1 (permalink)  
Antiguo 12/01/2009, 14:25
 
Fecha de Ingreso: mayo-2007
Mensajes: 140
Antigüedad: 17 años
Puntos: 6
problema con acentos y ñ en nombre de archivos.

tengo unos archivos que tienen acentos tipo, camión.php pero que para que se visualicen hay que poner: cami%f3n.php

si pongo directamente camión.php no aparece nada.

El problema además es que los enlaces no funcionan ya que apuntan a camión.php , el codigo en html es camión.php y es correcto ya que en el navegador sale "camión.php"


¿hay alguna solución sencilla o debo cambiar todos los enlaces y que apunten a "cami%f3n.php"


Gx.
__________________
calcular Calculadora hipoteca
  #2 (permalink)  
Antiguo 12/01/2009, 14:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: problema con acentos y ñ en nombre de archivos.

Hola aleluya,

Usa mejor urlencode() sobre el nombre para que sea valido en lugar de htmlspecialchars.

Saludos
  #3 (permalink)  
Antiguo 12/01/2009, 14:41
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: problema con acentos y ñ en nombre de archivos.

no deberías usarlos en los nombre de archivos por las complicaciones entre el navegador, idiomas web y servidor como ello interpretan letras fuera de lo comunes puede diferenciar. Esto te puede causar mas problemas de lo que quieres por eso yo opto por no usarlos.

Ahora en tu caso si el archivo esta escrito cami%f3n.php entonces tu enlace debe ser <a href="cami%f3n.php">Enlace</a>
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
  #4 (permalink)  
Antiguo 12/01/2009, 14:50
 
Fecha de Ingreso: enero-2009
Ubicación: Bogotá - Colombia
Mensajes: 54
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: problema con acentos y ñ en nombre de archivos.

Hola.

No debes utilizar tildes ni eñes en nombres de alrchivos, ojala también evitar la utilización dee spacios en los nombres de los archivos por que eso enera problemas.

utiliza los caracteres normales y para los espacios cambialos por - o _ .

Un salud
  #5 (permalink)  
Antiguo 12/01/2009, 14:54
 
Fecha de Ingreso: mayo-2007
Mensajes: 140
Antigüedad: 17 años
Puntos: 6
Respuesta: problema con acentos y ñ en nombre de archivos.

Dándole vueltas pensé que se podria solucionar cambiando algo en el servidor

en php.ini o
.htacces

Cita:
Iniciado por sweetlydark Ver Mensaje
no deberías usarlos en los nombre de archivos por las complicaciones entre el navegador, idiomas web y servidor como ello interpretan letras fuera de lo comunes puede diferenciar. Esto te puede causar mas problemas de lo que quieres por eso yo opto por no usarlos.

Ahora en tu caso si el archivo esta escrito cami%f3n.php entonces tu enlace debe ser <a href="cami%f3n.php">Enlace</a>
actualmente el codigo html es cami&#xf3;n.php y el archivo al que apunta y que aparece es camión.php pero ese archivo "no existe".
__________________
calcular Calculadora hipoteca
  #6 (permalink)  
Antiguo 12/01/2009, 15:44
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: problema con acentos y ñ en nombre de archivos.

si porque el código html &#xf3; es un mecanismo visual del navegador, tu vez camión de lo mas lindo en el navegador pero no encuentras el archivo porque esta buscando un archivo con el nombre cami&#xf3;n.php y no camión.php

Tienes que escribir el enlace EXACTAMENTE igual que el archivo (recuerde que en los servidores linux las mayúsculas importan mucho). Primero sube el archivo a tu servidor luego mi como se ve el nombre del archivo en tu servidor si es camión.php usas

<a href="camión.php">Enlace</a>

Si es cami%f3n.php usas:

<a href="cami%f3n.php">Enlace</a>

También asegura que tu pagina este usando un codificación de letras que acepta los acentos y que tu servidor reconozca (aunque creo que con el servidor no debes tener problema si usas los reconocidos por la W3C).
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
  #7 (permalink)  
Antiguo 12/01/2009, 17:23
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Respuesta: problema con acentos y ñ en nombre de archivos.

sweetlydark, lo que estás diciendo puede que no sea completamente correcto en este caso y puede liar más al personal.
En HTML pueden utilizarse caracteres fuera del a-z A-Z y 0-9 _- (siempre que el charset esté bien definido, claro).
Sin embargo, los parámetros de las etiquetas (en inglés tags) deben de "escaparse".
El escapar un caracter es simplemente sustituirlo por su código de caracter en la tabla ASCII, antecedido por un signo %. (El propio signo % debe escaparse para no confundirse consigo mismo).
El ejemplo más corriente es el espacio. Una URL con espacios será convertida en tu propio navegador (al enviarla al servidor) por la misma cadena, habiendo sustituido los espacios por %20. (Así, /pagina/web uno.html se convierte en /pagina/web%20uno.html).

Igualmente, si el sistema de archivos soporta que los nombres de archivos tengan una / en su nombre, el archivo "uno/dos.html" DEBE escribirse, en el href="" como "uno%2fdos.html".

Lo que dices de utilizar &#xf3; es similar a %f3. La diferencia primordial es que &#xf3; es un caracter virtual que convierte al caracter (lo que está entre & y ;) por el que está en el lugar hexadecimal 0xF3 (ó).
En caracteres virtuales, en lugar de &#xf3; para tu ó también puedes usar &oacute; (es el mismo caracter en HTML). Sin embargo para acceder a su URL, el mecanismo es el %f3.

No puedes ponerlo directamente (o aunque el servidor lo soporte no deberías hacerlo).

Para evitarse todos estos jaleos siempre es mejor no necesitar estos caracteres, que al fin y al cabo tampoco son tan importantes en la URL (digo yo ^^).


@sweetlydark:
El enlace no debe escribirse EXACTAMENTE igual que el archivo por la razón anterior. Sin embargo, sí es cierto que a no es igual a A. Hablando de caracteres ajenos a la tabla básica de caracteres*

Un saludo

*) Según el Estandar C++, el conjunto de caracteres básicos de origen son 96 caracteres: espacio, cracteres de control de tabulación horizontal, tabulación vertical, salto de página y nueva línea y los siguientes 91 caracteres gráficos:
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9
_ { } [ ] # ( ) < > % : ; . ? * + - / ^ & | ~ ! = , \ " '
En el esquema de URIs, algunos de estos caracteres están reservados (como # y ?), es decir, tienen un significado especial.
__________________
Si te ha gustado lo que he dicho, puedes darme algún punto de reputación, que no te cuesta nada ^_^.

Di no a los juicios de valor!
  #8 (permalink)  
Antiguo 12/01/2009, 17:54
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: problema con acentos y ñ en nombre de archivos.

Cita:
Iniciado por santhy Ver Mensaje
El ejemplo más corriente es el espacio. Una URL con espacios será convertida en tu propio navegador (al enviarla al servidor) por la misma cadena, habiendo sustituido los espacios por %20. (Así, /pagina/web uno.html se convierte en /pagina/web%20uno.html).

Igualmente, si el sistema de archivos soporta que los nombres de archivos tengan una / en su nombre, el archivo "uno/dos.html" DEBE escribirse, en el href="" como "uno%2fdos.html".
Rayos es verdad se me ha quedado en la mente esto (ya que hace tiempo no he necesitado usar estas cosas) pero si creo que estas en lo correcto. Hay!! pero es un gran dolor de cabeza tener que buscar un código para remplazar ciertos caracteres de tus archivo, que creo que mi mente ah ido borrándole de mi cabeza.
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
  #9 (permalink)  
Antiguo 13/01/2009, 12:35
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Respuesta: problema con acentos y ñ en nombre de archivos.

Para buscar el código, es mirar en la tabla ASCII. como ya he dicho. (espacio = 32(decimal) = 0x20 => %20).
En PHP lo tenemos más fácil con urlencode() y rawurlencode()

Para más información, ver RFC1738 (en inglés) http://www.faqs.org/rfcs/rfc1738, párrafo 2.2
__________________
Si te ha gustado lo que he dicho, puedes darme algún punto de reputación, que no te cuesta nada ^_^.

Di no a los juicios de valor!

Última edición por santhy; 13/01/2009 a las 12:41
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:49.