Cómo configurar y usar UTF-8 en FreeBSD 12
Algo que aún se echa de menos en el instalador del sistema es poder configurar idiomas con soporte UTF-8 en FreeBSD 12. Y lo curioso es que FreeBSD soporta perfectamente UTF-8 en una amplia variedad de idiomas. Pero para poder configurar y usar UTF-8 para idioma español (y el resto de idiomas) en FreeBSD 12 hay que hacerlo manualmente.
Seguramente más de una vez te has dado cuenta de que aunque caracteres como los corchetes y las llaves se corresponden con el idioma que has elegido en la instalación, sin embargo la ñ, vocales acentuadas, etc. no funcionan.
Si compruebas la configuración de la localización con el comando locale te darás cuenta de que no está activado el uso de UTF-8:
~$ locale LANG= LC_CTYPE="C" LC_COLLATE="C" LC_TIME="C" LC_NUMERIC="C" LC_MONETARY="C" LC_MESSAGES="C" LC_ALL=
Pero si miras las localizaciones disponibles con el parámetro -a comprobarás que son muchas:
~$ locale -a C POSIX af_ZA.ISO8859-1 af_ZA.ISO8859-15 af_ZA.UTF-8 am_ET.UTF-8 ar_AE.UTF-8 ... zh_CN.GBK zh_CN.UTF-8 zh_CN.eucCN zh_HK.UTF-8 zh_TW.Big5 zh_TW.UTF-8
Incluso hay variantes distintas del español:
~$ locale -a |grep -i ^es es_AR.ISO8859-1 es_AR.UTF-8 es_CR.UTF-8 es_ES.ISO8859-1 es_ES.ISO8859-15 es_ES.UTF-8 es_MX.ISO8859-1 es_MX.UTF-8
Visto que existe soporte de UTF-8 en español vamos a activarlo en pocos pasos.
Editando /etc/login.conf
Es en este archivo donde se configuran multitud de parámetros del inicio de sesión. Así que editaremos /etc/login.conf:
~$ sudo nano /etc/login.conf
Buscaremos la sección default:
... default:\ :passwd_format=sha512:\ :copyright=/etc/COPYRIGHT:\ :welcome=/etc/motd:\ ... :priority=0:\ :ignoretime@:\ :umask=022:
Añadiremos las variables charset y lang con los valores correspondientes a la codificación y su variante de idioma correspondientes. Es importante añadir un carácter \ a la última línea de la sección antes de añadir estas dos variables, y tener cuidado de que la última variable no termine en \. El final de la sección quedaría así:
... :priority=0:\ :ignoretime@:\ :umask=022:\ :charset=UTF-8:\ :lang=es_ES.UTF-8:
Creando la base de datos de capacidades de login
Guardados los cambios es necesario ejecutar cap_mkdb sobre el archivo /etc/login.conf para que se vuelva a crear la base de datos de capacidades del login:
~$ sudo cap_mkdb /etc/login.conf
Es imporante cerrar la sesión y volver a iniciarla, hecho lo cual podemos comprobar de nuevo la configuración de localización:
~$ locale LANG=es_ES.UTF-8 LC_CTYPE="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=
Y vemos cómo refleja los cambios. Es más, en la misma línea de comandos ya podemos usar caracteres especiales:
~$ áéíóú ñÑ çÇ ¿? ¡!
Conclusión
FreeBSD 12 tiene soporte para UTF-8 pero carece del configurador durante el proceso de instalación del sistema. Afortunadamente la configuración es sencilla y no requiere instalación adicional de paquetes, basta con una mínima configuración.
¡Apoya comoinstalar.me!
¿Ya puedes teclear los caracteres de tu idioma correctamente gracias a nuestra guía de configuración de UTF-8 en FreeBSD 12? Si es así y te apetece agradecérnoslo colaborando con el mantenimiento de este sitio, puedes hacerlo dejando 1 $ de propina en PayPal:
O, si te sientes especialmente agradecido, puedes invitarnos a un café:
¡Gracias!