Foros del Web » Programando para Internet » PHP »

Acentos y eñes en archivos, con linux

Estas en el tema de Acentos y eñes en archivos, con linux en el foro de PHP en Foros del Web. Hola de nuevo! Sé que se ha preguntado y escrito por este tema pero siempre lo que se dice es que 'no usen acentos y ...
  #1 (permalink)  
Antiguo 13/06/2011, 11:05
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 8 meses
Puntos: 1
Pregunta Acentos y eñes en archivos, con linux

Hola de nuevo!

Sé que se ha preguntado y escrito por este tema pero siempre lo que se dice es que 'no usen acentos y eñes en rutas y nombres de archivos en linux', pero en mi caso se trata de migrar un sitio entero desde windows a linux (Centos 5) y ahora me encuentro con que hay montones de imágenes con acentos, directorios etc, así como sus apuntes en la bases de datos...

Entonces, ahora que se trata de 'resolver' y no 'prevenir'
¿Podés ayudarme con alguna solución para este tema?

Gracias y un saludo.
  #2 (permalink)  
Antiguo 13/06/2011, 11:14
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Acentos y eñes en archivos, con linux

has un codigo que te recorra todos los datos y que reemplase las ñ de las rutas por otra cosa.

tambien puedes usar dreamweaver para eso.
  #3 (permalink)  
Antiguo 13/06/2011, 11:30
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Acentos y eñes en archivos, con linux

no se sie s solucion, pero es mejor guaradar asi los nombres de archivos
ej de un usuario con id 300

imgen de usuario
name: 300_1.jpeg
imgen 2 de usuario
name: 300_2.jpeg
imgen 3 de usuario
name: 300_3.jpeg

con eso te ahorras de muchos problemas

yo tuve el mismo problema, ya la solcion, no hay solucion,
sino modificar el codigo que genera el nombre de la imagen cuando se guarda

lo que dice enlinea777 esta bueno pero pensa esto: tenes 10.000 usuarios cada uno con N fotos
como haces para cambiarle el nombre a todas las imagenes
y que no se pierda la integridad de los datos?
  #4 (permalink)  
Antiguo 13/06/2011, 13:18
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Acentos y eñes en archivos, con linux

Hola! Gracias por la ayuda.

Pues si Linux no soporta nombres con acentos (En la consola SSH aparecen como '?') tendre que hacer un proceso para buscar los archivos afectados. Cambiar nombres de archivos y datos almacenados en la base de datos. (vaya tarea)
A no ser que alguien me diga lo contrario...

Graciasy un saludos.
  #5 (permalink)  
Antiguo 13/06/2011, 13:21
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Acentos y eñes en archivos, con linux

Por cierto,
¿hay alguna función que a partir de una cadena devuelva un nombre válido de archivo / directorio en Linux? porque además tendré que añadir esta modificación para no siga habiendo este problema en el futuro.
  #6 (permalink)  
Antiguo 13/06/2011, 13:37
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Acentos y eñes en archivos, con linux

Pues yo no he tenido problemas para almacenar archivos con caracteres especiales en linux, pues el sistema que tiene el servidor (reiserfs) lo soporta.
Por otra parte, cuando un usuario sube un archivo, proceso la cadena (nombre del archivo) con utf8_encode y utf8_decode para guardar el archivo en alguna carpeta y para almacenar su nombre en la base de datos.
  #7 (permalink)  
Antiguo 13/06/2011, 14:11
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Acentos y eñes en archivos, con linux

el nombre del archivo lo validas vos y lo cambias por el q mas te guste
  #8 (permalink)  
Antiguo 13/06/2011, 14:29
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: Acentos y eñes en archivos, con linux

Cita:
Iniciado por bauhaus1975 Ver Mensaje
Hola! Gracias por la ayuda.

Pues si Linux no soporta nombres con acentos (En la consola SSH aparecen como '?') tendre que hacer un proceso para buscar los archivos afectados. Cambiar nombres de archivos y datos almacenados en la base de datos. (vaya tarea)
A no ser que alguien me diga lo contrario...

Graciasy un saludos.
creo que los datos en la base de datos no deberían ser un problema, sólo deberías usar el htmlentities y no debería haber problemas al mostrarlos y se acabarán los ? que aparecen... intentalo
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #9 (permalink)  
Antiguo 13/06/2011, 14:41
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Acentos y eñes en archivos, con linux

yo no quise decir nada......
  #10 (permalink)  
Antiguo 13/06/2011, 15:15
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Acentos y eñes en archivos, con linux

Cita:
Iniciado por Patriarka Ver Mensaje
no se sie s solucion, pero es mejor guaradar asi los nombres de archivos
ej de un usuario con id 300

imgen de usuario
name: 300_1.jpeg
imgen 2 de usuario
name: 300_2.jpeg
imgen 3 de usuario
name: 300_3.jpeg

con eso te ahorras de muchos problemas

yo tuve el mismo problema, ya la solcion, no hay solucion,
sino modificar el codigo que genera el nombre de la imagen cuando se guarda

lo que dice enlinea777 esta bueno pero pensa esto: tenes 10.000 usuarios cada uno con N fotos
como haces para cambiarle el nombre a todas las imagenes
y que no se pierda la integridad de los datos?

pues es facil
crear una rutina para cambiar los nombres de archivo con php y luego crear una Query que reemplace los caracteres por otra cosa, no evio que sea dificil.

lo mas recomendable es que lo hagas en anviente windows y luego lo pases a linux
  #11 (permalink)  
Antiguo 19/06/2011, 11:50
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 8 meses
Puntos: 1
Respuesta: Acentos y eñes en archivos, con linux

Hola, y gracias a todos por la atención.

Finalmente voy a crear un proceso que recorra todo el árbol de carpetas y archivos. Y donde existan acentos los reemplazaré por el caracter sin acentos (y eñes). Lo lanzaré en el server de Windows de esta manera dejo preparado directorios y carpetas antes de subirlo al de Linux.

Y lo MÁS IMPORTANTE, a partir de ahora cada vez que suba un contenido al server usaré esta función para renombrarlo por un nombre que acepte el sistema.

Código PHP:
function normalizaCadena($cadena) {
// Esta función cambia caracteres para devolver una cadena válida para almacenar en linux.
    
$originales 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿRr';
    
$modificadas'AAAAAAACEEEEIIIIDNOOOOOOUUUUybsaaaaaaaceeeeiiiidnoooooouuuyybyRr';
    
$cadena strtr($cadena$originales$modificadas);
    return 
$cadena;

Para la base de datos también tendré que crear un proceso que recorra las tablas y campos que puedan estar afectados para renombrarlos.

Bueno, gracias de nuevo y un saludo!

Etiquetas: acentos, eñes, linux
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




La zona horaria es GMT -6. Ahora son las 20:46.