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.
Al igual que muchos sistemas operativo de la familia UNIX, FreeBSD no viene configurado para utilizar la codificación de caracteres UTF-8
por defecto, sin embargo esta totalmente soportado y es
facilmente configurable.
Para determinar el locale apropiado para nuestro lenguaje y localización es posible utilizar la herramienta locale
, para obtener más información de su funcionamiento, con un simple man locale
accedemos a su manual:
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):
usuari@freebsd:~% 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
:
usuari@freebsd:~% 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
, donde 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
:
root@freebsd:~# vi /etc/login.conf
:charset=UTF-8:\
:lang=es_ES.UTF-8:
💡 Notar que en la ultima variable no se debe escapar el salto de linea
Luego es necesario ejecutar cap_mkdb
para regenerar la base de datos de capacidades de login:
root@freebsd:~# cap_mkdb /etc/login.conf
Ahora, vamos a configurar otro fichero que hace falta:
root@freebsd:~# vi /etc/profile
LANG=en_US.UTF-8; export LANG
CHARSET=UTF-8; export CHARSET
Finalmente, cerrar la sesión.
Luego de iniciar la sesión, es posible verificar la configuración regional nuevamente:
usuari@freebsd:~% locale
LANG=es_ES.UTF-8
LC_TYPE="es_ES.UTF-8"
LC_COLLATE="es_ES.UTF-8"
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.