# [locale] problema con caracteres en terminal

## chaim

Bueno, he estado mirando la guía oficial y varios foros por aquí pero, aunque me dé mucha rabia, no he conseguido hacerlo.

El caso es que tengo que hacer una práctica sobre una librería estática que reza:

```
La biblioteca funciona con los códigos de VT100/xterm, por lo que debéis adecuar vuestros simuladores a este terminal. 
```

iré poniendo aquí la configuración que creo que debería comprobar y para que os hagais una idea de lo que me pasa:

[IMG]http://img75.imageshack.us/img75/2084/captura.th.png[/IMG]

aquí la configuración:

~./basrc

```
export LANG=es_ES.utf8

export LC_CTYPE="es_ES.utf8"

export LC_NUMERIC="es_ES.utf8"

export LC_TIME="es_ES.utf8"

export LC_COLLATE="es_ES.utf8"

export LC_MONETARY="es_ES.utf8"

export LC_MESSAGES="es_ES.utf8"

export LC_PAPER="es_ES.utf8"

export LC_NAME="es_ES.utf8"

export LC_ADDRESS="es_ES.utf8"

export LC_TELEPHONE="es_ES.utf8"

export LC_MEASUREMENT="es_ES.utf8"

export LC_IDENTIFICATION="es_ES.utf8"

export LC_ALL=es_ES.utf8
```

 /etc/env.d/02locale

```
LANG="es_ES.UTF-8"

LC_COLLATE="C"

```

 /etc/conf.d/consolefont 

```
CONSOLEFONT="lat0-16" // creo que se lo ví a i92 (no me acuerdo del nick completo) en un post de este foro y lo probé por si el mío por defecto estaba mal

#CONSOLETRANSLATION="8859-1_to_uni"

```

 #locale-gen 

```
locale-gen

 * Generating 3 locales (this might take a while) with 1 jobs

 *  (1/3) Generating es_ES.ISO-8859-15 ...                                [ ok ]

 *  (2/3) Generating es_ES.ISO-8859-15@euro ...                           [ ok ]

 *  (3/3) Generating es_ES.UTF-8 ...                                      [ ok ]

 * Generation complete
```

 rc-config show boot

```
Status of init scripts in runlevel boot

  alsasound                 [started]

  bootmisc                  [started]

  checkfs                   [started]

  checkroot                 [started]

  clock                     [started]

  consolefont               [started]

  dbus                      [started]

  hostname                  [started]

  keymaps                   [started]

  localmount                [started]

  modules                   [started]

  net.lo                    [started]

  rmnologin                 [started]

  urandom                   [started]

```

 $ locale 

```
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
```

USE /etc/make.conf 

```
 "...nls...unicode..."
```

 kernel 

```
 Tengo como * NLS UTF8 
```

Ya no sé por donde más mirar...me estoy volviendo loco

La imagen debería ser igual que ésta...

http://img254.imageshack.us/img254/8066/cruce.png

Un saludo y gracias

----------

## pelelademadera

mi 02locale

```
 LANG="es_AR.utf8"

 LANGUAGE="es_AR.utf8"

 LC_ALL="es_AR.utf8"
```

es lo unico que toque para que ande bien...

----------

## Txema

pelelademadera, no es bueno asignar valor alguno a LC_ALL te lo puede desconfigurar todo, además deberías configurar LC_COLLATE="C"

chaim, yo empezaría por borrar todo lo que has metido en .bashrc y mejor lo arreglas en todo el sistema de forma generalizada.

Me gustaría ver el archivo /etc/locale.gen

Mirándolo bien, creo que todo el problema está con .bashrc, que asigna el valor es_ES.utf8 y sin embargo locale-gen te genera es_ES.UTF-8, pues viendo esto parece que has generado un locale y has asignado otro totalmente distinto, así que lo dicho, borra todo lo referente a los locales en .bashrc, reinicia y nos cuentas  :Wink: 

Saludos.

----------

## chaim

gracias txema por tu rápida contestación: He borrado todo lo referente al ~.bashrc

mi /etc/locale.gen

```
es_ES ISO-8859-15

es_ES@euro ISO-8859-15

es_ES.UTF-8 UTF-8
```

ahora mi /etc/env.d/02locale

```
LANG="es_ES.UTF-8"

LC_COLLATE="C"

LC_CTYPE="es_ES.UTF-8"
```

y ahora mis locales son:

```
[20:47] chime@gentusso ~ $ locale

LANG=

LC_CTYPE=es_ES

LC_NUMERIC="POSIX"

LC_TIME="POSIX"

LC_COLLATE="POSIX"

LC_MONETARY="POSIX"

LC_MESSAGES="POSIX"

LC_PAPER="POSIX"

LC_NAME="POSIX"

LC_ADDRESS="POSIX"

LC_TELEPHONE="POSIX"

LC_MEASUREMENT="POSIX"

LC_IDENTIFICATION="POSIX"

LC_ALL=

```

----------

## Txema

¿Para qué has puesto LC_CTYPE?

Borralo y reinicia.

Saludos.

P.D: por cierto tanto es_ES como es_ES@euro en /etc/locale.gen apuntan a la misma codificación (ISO-8859-15), así que uno de los dos te está sobrando  :Wink: 

----------

## chaim

 cat /etc/locale.gen

```

es_ES ISO-8859-15

es_ES.UTF-8 UTF-8
```

cat /etc/env.d/02locale

```
LANG="es_ES.UTF-8"

LC_COLLATE="C"
```

nota: puse LC_CTYPE por lo que vi aqui

locale

```
LANG=

LC_CTYPE=es_ES

LC_NUMERIC="POSIX"

LC_TIME="POSIX"

LC_COLLATE="POSIX"

LC_MONETARY="POSIX"

LC_MESSAGES="POSIX"

LC_PAPER="POSIX"

LC_NAME="POSIX"

LC_ADDRESS="POSIX"

LC_TELEPHONE="POSIX"

LC_MEASUREMENT="POSIX"

LC_IDENTIFICATION="POSIX"

LC_ALL=
```

----------

## Txema

A ver si el reinicio no va a ser lo único que hacía falta... porque todo parece estar correcto, prueba con esto,

```
env-update && source /etc/profile
```

reinicia (todo o solo las X) y haz otro locale.

Saludos.

----------

