Utilizar UTF-8 en FreeBSD

Una de las cosas que echo en falta a la hora de realizar la instalación de FreeBSD es poder configurar UTF-8 en el instalador de FreeBSD.

Al igual que muchos sistemas operativo de la familia UNIX, FreeBSD no viene configurado para utilizar la codificación de caracteres UTF-8 po defecto. Sin embargo, FreeBSD afortunadamente soporta UTF-8 y es facilmente configurable.

Para determinar el locale apropiado para nuestro lenguaje y localización es posible utilizar la herramienta locale ( man locale ) :

locale -a | grep -i utf

Mi FreeBSD 11.0 posee soporte para las siguientes configuraciones regionales ( no las pongo todas, pongo la primera, la que voy a utilizar y la ultima ) :

miUsuari@miMaquina:~ % locale -a | grep -i utf
af_ZA.UTF-8
..
..
es_ES.UTF-8
..
..
zh_TW.UTF-8

En mi caso, voy a utilizar es_ES.UTF-8.
Para determinar cual es la configuración regional actual, ejecutar simplemente locale :

miUsuari@miMaquia:~ % locale
LANG=
LC_CTYPE="C"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=

Se observa que se esta utilizando el locale C/POSIC ( C y POSIC son aliases ).
Por lo tanto, es necesario cambiar el locale a UTF-8, para poder visualizar correctamente los tildes y eñes. Para ello, editar el archivo /etc/login.conf :

miUsuari@miMaquina:/usr/home/miUsuari # vi /etc/login.conf

Configurar correctamente los valores por defecto ( luego de default: ) de las variables charset y lang :

:charset=UTF-8:\
:lang=es_ES.UTF-8:

( Notar que en la ultima variable no se debe escapar el salto de linea )

Además, se recomienda que LC_COLLATE ( como se intercalan los bytes en caracteres multi-byte ) se mantenga por defecte en C, debido a que algunos programas todavia requieren mantener el ordenamiento ASCII para funcionar correctamente.

Para ello, agregar dicha variable dentro del configuración del entorno ( setenv ), cambiar :

:setenv=MAIL=/var/mail/$,BLOCKSIZE=K,LC_COLLATE=C:\

Luego es necesario ejecutar cap_mkdb para regenerar la base de datos de capacidades de login :

miUsuari@miMaquina:/usr/home/miUsuari # cap_mkdb /etc/login.con

Finalmente, cerrar la sesión.

Luego de iniciar la sesión, es posible verificar la configuración regional nuevamente :

miUsuari@miMaquina:~ % locale
LANG=es_ES.UTF-8
LC_TYPE="es_ES.UTF-8"
LC_COLLATE=C
LC_TIME="es_ES.UTF-8"
LC_NUMERIC="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_MESSAGES="es_ES.UTF-8"
LC_ALL=

Notar como LC_COLLATE se mantiene en C.

A partir de este momento, se visualizaran correctamente los tildes y eñes en nombre de archivo, sesiones SSH y al escribir texto.

Anuncis