Busindre » Blog Archive » Solucionar problema de las tildes y otros caracteres al montar particiones Windows (GNU/Linux)

Solucionar problema de las tildes y otros caracteres al montar particiones Windows (GNU/Linux)

April 20th, 2008 by Busindre

Es común encontrar en personas iniciadas en GNU/Linux el típico problema al montar particiones windows y encontrar caracteres extraños en los nombres de algunos ficheros / directorios de esa partición montada. Este problema se debe al desacuerdo entre la codificación del sistema de la partición montada y la usada por el sistema operativo sobre la que se monta dicha partición, la cual debe ser idéntica para no tener problemas con determinados caracteres (Tildes, Ñ, €,… ). La mayoría de distribuciones de GNU/Linux actuales usan UTF-8 como codificación preferente, ya que es hacia lo que evolucionan los sistemas operativos debido a su universalidad. Esta codificación nos permite utilizar, entre otras cosas, cualquier símbolo unicode y usar varios alfabetos (cirílico, griego, japonés, árabe,..) con la posibilidad de mezclarlos entre si en un mismo documento de forma simultanea, como por ejemplo podemos apreciar en muchos artículos de la Wikipedia.

Pero no todos los sistemas operativos usan UTF-8 como codificación para los nombres de ficheros que tienen en disco, Windows XP sigue usando codificación ISO8859-15 para ese menester y al ser montado, por ejemplo en una distribución de GNU/Linux que use UTF-8, provocará que ciertos caracteres no se visualicen en pantalla de forma correcta, al igual pasaría si estamos usando una distro con codificación ISO8859-15 y sobre ella montamos una partición de un otro unix con UTF-8. Las codificación usada en un partición montada y la del sistema sobre la que se monta, deben ser la misma. Si se monta una partición ISO8859-15 el sistema operativo donde montas la partición debe usar ISO8859-15. Cuando no coinciden las codificaciones se pueden encontrar que ciertos ficheros no se abren, no se encuentran rutas, ciertos programas no funcionan correctamente, etc…

Es por eso que mostramos una recopilación de ejemplos con montajes de particiones que no usan UTF-8, bajo distribuciones de GNU/Linux que si la usan. Para hacerlo mas educativo mostramos el montaje de particiones windows usando el driver Ntfs estándar del kernel, la suite ntfsprogs y ntfs-3g, tanto para montarlo manualmente como mediante el añadido de lineas al fichero fstab.

Normal

* Manual (Driver nativo):

# mount -t vfat /dev/hda1 /media/hd -o utf8

* Linea para /etc/fstab:

UUID=604C-9EE3 /media/hd vfat nls=utf8,iocharset=utf8,user,group,gid=500,uid=500,auto,exec 0 0

NOTA: No se recomienda usar codificación UTF-8 en sistemas FAT

NtfsProgs

* Manual:

# ntfsmount /dev/hda1 /mnt/windows/ -o locale=es_ES.utf8

* Linea para /etc/fstab:

/dev/hda1 /mnt/windows fuse.ntfs locale=es_ES.utf8 0 0

NOTA: Recordar que para desmontar usando ntfsprogs es recomendable usar “# fusermount -u /mnt/windows“.

Ntfs-3g

* Manual:

# mount -t ntfs-3g /dev/hda1 /mnt/windows -o locale=es_ES.utf8,nls=es_ES.utf8

* Linea para /etc/fstab:

/dev/hda1 /mnt/windows ntfs-3g locale=es_ES.utf8,nls=es_ES.utf8 0 0

Para saber que codificación de caracteres usamos en nuestro sistema GNU/Linux tenemos el comando “locale”, las dos más comunes de encontrar son ISO8859-15 (Desapareciendo) y UTF-8 pudiéndose mostrar de esta forma.

[ ISO8859-15 ]

$ locale
LANG=es_ES@euro
LC_CTYPE=”es_ES@euro”
LC_NUMERIC=”es_ES@euro”
LC_TIME=”es_ES@euro”
LC_COLLATE=C
LC_MONETARY=”es_ES@euro”
LC_MESSAGES=”es_ES@euro”
LC_PAPER=”es_ES@euro”
LC_NAME=”es_ES@euro”
LC_ADDRESS=”es_ES@euro”
LC_TELEPHONE=”es_ES@euro”
LC_MEASUREMENT=”es_ES@euro”
LC_IDENTIFICATION=”es_ES@euro”
LC_ALL=

[ UTF-8 ]

$ locale
LANG=es_ES.UTF-8
LC_CTYPE=”es_ES.UTF-8″
LC_NUMERIC=”es_ES.UTF-8″
LC_TIME=”es_ES.UTF-8″
LC_COLLATE=”es_ES.UTF-8″
LC_MONETARY=”es_ES.UTF-8″
LC_MESSAGES=”es_ES.UTF-8″
LC_PAPER=”es_ES.UTF-8″
LC_NAME=”es_ES.UTF-8″
LC_ADDRESS=”es_ES.UTF-8″
LC_TELEPHONE=”es_ES.UTF-8″
LC_MEASUREMENT=”es_ES.UTF-8″
LC_IDENTIFICATION=”es_ES.UTF-8″
LC_ALL=

De ser otro idioma, como el ingles:

$locale
LANG=en_IE.UTF-8
LC_CTYPE=”en_IE.UTF-8″
LC_NUMERIC=”en_IE.UTF-8″
LC_TIME=”en_IE.UTF-8″

Al igual que la wikipedia, como ya comentábamos anteriormente, la inmensa mayoría de los CMS actuales usan utf8 como codificación de su base de datos, observemos la posibilidad de varios alfabetos de forma simultanea:

Ruso: читается «слипнот», в пер. с англ. — «удавка»

Japones: スリップノット (Slipknot) はアメリカ合衆国アイオワ州デモイン出身の9人組バンド

Arabe: סליפנוט (Slipknot) היא להקת מטאל מצליחה שהוקמה בשנת

Koreano: 슬립낫(Slipknot - 가끔 SlipKnoT으로 적기도 함)

Turco: Slipknot 1992 yılında Des Moines, IOWA’ da kurulmuş ve halen

Vietnamita: Slipknot (thường viết SlipKnoT) Ban nhạc Nu-Metal Mỹ

Como hemos podido ver en este pequeño ejemplo, gracias a esta codificación podemos usar diferentes alfabetos y caracteres multilingües en un mismo texto de forma simultanea, cosa imposible con otras codificaciones mas antiguas. En GNU/Linux el encargado de dar soporte a las codificaciones es el kernel, al no ser que tengamos un kernel antiguo 2.4 tendremos activado dicho soporte, pero también necesitaremos hacer uso de programas que puedan trabajar con utf-8 (Unicode), como son escritorios, applets, navegadores, etc…

Para visualizar una página web unicode no es obligatorio tener todo el sistema con UTF-8, pero sí el que esté soportado por el kernel y por el cliente web (Firefox, Safari, Opera, etc,.. ). Realmente no todo en un escritorio suele soportar caracteres unicode, ni tiene porque soportarlo, hay muchos gestores de ventana, editores de texto, clientes de mensajería, terminales y demás aplicaciones que no soportan esta codificación, pero suelen ser por antigüedad o porque no aporta muchas funcionalidades en relación al trabajo necesario para obtener dicho soporte. Un ejemplo de esto lo vemos con xterm y uxterm (Soporta unicode), la primera no ofrece las posibilidades de múltiples alfabetos, ni siquiera la introducción de símbolos como el euro €, mientras que uxterm nos permite hacer lo que queramos como vemos en la imagen.

Posted in Linux |

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.