Migrando a UTF-8
De Wiki
Tabla de contenidos |
[editar] Introducción
Esta pequeña guía parte de un Gentoo Linux funcionando y utilizando como charset de sistema ISO-8559-15. La idea es migrar a UTF-8 sin tener que reinstalar el sistema ni nada por el estilo.
[editar] Configurando el sistema
[editar] Kernel
Deberemos fijar File systems --> Native Language Support --> Default NLS Option (CONFIG_NLS_DEFAULT) a "utf8". Para ext3/xfs/reiserfs no deberemos hacer nada más, en el caso de vfat aunque podemos especificar como charset por defecto utf8, se recomienda en su lugar utilizar utf8=true como opciones de montaje.
[editar] Ficheros de configuración
Deberemos retocar varios ficheros:
- /etc/locale.gen
- /etc/rc.conf
- /etc/make.conf
- /etc/conf.d/consolefonts
- /etc/conf.d/keymaps
- /etc/env.d/02locale
- /etc/profile
[editar] /etc/locale.gen
es_ES.UTF-8 UTF-8
Y a continuación ejecutamos el comando locale-gen y deberíamos tener un resultado similar a este:
* Generating 5 locales (this might take a while) with 1 jobs * (1/5) Generating en_US.ISO-8859-1 ... [ ok ] * (2/5) Generating en_US.UTF-8 ... [ ok ] * (3/5) Generating es_ES.ISO-8859-15@euro ... [ ok ] * (4/5) Generating es_ES.ISO-8859-1 ... [ ok ] * (5/5) Generating es_ES.UTF-8 ... [ ok ]
Fijaros en que tengais una línea similar a la 5/5 del ejemplo.
[editar] /etc/rc.conf
UNICODE="yes"
[editar] /etc/make.conf
Aquí simplemente añadimos "unicode" a la variable USE
[editar] /etc/conf.d/consolefonts
CONSOLEFONT="lat9u-16"
Esta es una de tantas fuentes con soporte UTF-8, es la que uso yo, pero es una simple sugerencia.
[editar] /etc/conf.d/keymaps
KEYMAP="es euro2""
[editar] /etc/env.d/02locale
LC_ALL="es_ES.utf8" LANG="es_ES.utf8" LANGUAGE="es_ES.utf8"
[editar] /etc/profile
En teoría no hay que colocar nada en este fichero, de hecho en uno de mis 2 equipos no tuve que añadir nada y me pilló sin problemas los valores fijados en /etc/env.d/02locale, pero en otro lo ignoró completamente, así que probad y en función de lo que pase colocais lo siguiente
LC_ALL="es_ES.utf8" LANG="es_ES.utf8" LANGUAGE="es_ES.utf8" export LC_ALL export LANG export LANGUAGE
[editar] Aplicaciones
Lo primero que tenemos que hacer es recompilar los paquetes ya instalados y que esten afectados por el cambio de la variable USE que hemos realizado, lo hacemos ejecutando el siguiente comando
emerge -Nav world
[editar] Irssi
/set term_charset UTF-8
[editar] screen
O bien ejecutamos screen con el parámetro -U o bien añadimos a /etc/screenrc la siguiente línea:
defutf8 on
[editar] Samba
Añadimos las siguientes líneas a la sección [global] del smb.conf
dos charset = UTF-8 unix charset = UTF-8 display charset = UTF-8
[editar] Arrancando en UTF-8
Una vez arrancado con el nuevo kernel y los cambios anteriormente descritos ya hechos, si todo ha ido bien, ejecutando el comando locale deberíamos obtener algo como esto:
LANG=es_ES.utf8 LC_CTYPE="es_ES.utf8" LC_NUMERIC="es_ES.utf8" LC_TIME="es_ES.utf8" LC_COLLATE="es_ES.utf8" LC_MONETARY="es_ES.utf8" LC_MESSAGES="es_ES.utf8" LC_PAPER="es_ES.utf8" LC_NAME="es_ES.utf8" LC_ADDRESS="es_ES.utf8" LC_TELEPHONE="es_ES.utf8" LC_MEASUREMENT="es_ES.utf8" LC_IDENTIFICATION="es_ES.utf8" LC_ALL=es_ES.utf8
[editar] Convirtiendo ficheros y nombres de fichero
Puede que veas mal algunas cosas, con caracteres extraños, para solucionar esto tenemos 2 herramientas, iconv y convmv, muy útiles para evitar este tipo de problemas.
[editar] iconv
iconv nos permite convertir el contenido del fichero de un charset a otro, en nuestro caso deberíamos usarlo del siguiente modo
iconv -f iso-8859-15 -t utf-8 fichero -o fichero.utf8
Ejecutando esto obtendremos una versión en UTF-8 del fichero de entrada.
[editar] convmv
convmv nos permite convertir el nombre del fichero/directorio de un charset a otro, no su contenido. Su sintaxis es la siguiente:
convmv -f iso-8859-15 -t UTF-8 fichero/directorio
Al ejecutarlo, convmv nos mostrará como sería el resultado, y si lo resultamos adecuado añadimos la opción --notest y lo volvemos a ejecutar

