Re: Locales y mayúsculas y minúsculas
El 30/10/16 a las 18:40, José Miguel (sio2) escribió:
Un saludo a la lista. A ver si alguno es capaz de explicarse cómo sucede
esto en mi sistema.
Resulta que tengo estas locales:
$ locale
LANG=es_ES.UTF-8
LANGUAGE=
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=
Vamos, que mi sistema está configurado en castellano y utf-8. Todo me
marcha bien, pero he intentado lo siguiente y no he obtenido el
resultado esperado:
$ tr '[:lower:]' '[:upper:]' <<<"adiós"
ADIóS
$ awk '{print toupper($0)}' <<<"adiós"
ADIóS
O sea, el sistema no es capaz de saber que la mayúscula de la ó es la Ó.
Yo tengo Debian testing (Stretch) con la misma configuración locale, y
si es cierto que con tr me da el mismo resultado, con awk lo hace bien:
$ locale
LANG=es_ES.utf8
LANGUAGE=
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=
$ tr '[:lower:]' '[:upper:]' <<<"adiós"
ADIóS
$ awk '{print toupper($0)}' <<<"adiós"
ADIÓS
No se aprecia, pero sale la Ó en mayúscula y con el acento y todo...
De hecho, no es capaz de saber que "ó" es una letra:
$ tr -d '[:alpha:]' <<<"adiós"
ó
Si, a mi me pasa igual...
Sin embargo, tengo mi sistema (LC_CTYPE en concreto) en utf8, ¿no
debería ser capaz?
python sí funciona bien:
$ python3 -c 'print("adiós".upper())'
ADIÓS
--
www.LinuxCounter.net
Registered user #369215
Reply to: