# Konsole: Sonderzeichen/UTF-8 Probleme

## Finswimmer

Hi,

öfter passiert es mir, dass ich mich vertippe und dann sieht es so aus:

```
[09:00:57]|[root@laptop]|/home/tobi

$emerge xf86-video-ati -f

!!! '�xf86-video-ati' is not a valid package atom.

!!! Please check ebuild(5) for full details.

[09:01:10]|[root@laptop]|/home/tobi

```

Im Prompt habe ich den falschen Buchstaben weggemacht, aber er wird noch erkannt, als ob da Reste vorhanden sind...

Manchmal ist es auch so, dass der Text zusammengerückt ist, das passiert, wenn ich durch die History mit "Bild hoch" gehe:

ls/root/

und das wird dann korrekt als ls /root/ erkannt.

Was ist das und wie geht es weg?

Vielen Dank

Tobi

----------

## Gucky_der_Mausbiber

Hmm, den gleichen Fehler habe ich unter gentoo, Nvidia-Grafik und UTF8 auch schon seit fast einem Jahr.

Wenn ich in der Konsole etwas tippe und dann mit den Pfeiltasten an den Anfang/Mitte der Zeile gehe, dann habe ich auch sehr oft diese verstümmelten Zeichen, bzw. schiebt er den Rest der Zeile einfach zusammen.

Da ich keinen Grund dafür gefunden habe lebe ich einfach damit. 

Aber wenn es eine Lösung gebe wäre ich auch sehr interessiert ...

----------

## Christian99

ich kenne das auch bin dem aber nie weiter nachgegeangen.

So als spekulation: manche tasten werden mit utf8 mit zwei bytes dargestellt. kann es sein, dass die rücktaste nur 1 byte davon wegmacht?

----------

## slick

Habe auch schon ewig das Problem (amd64, utf-8, nvidia), es nervt!

Ich habe es jetzt mit einem anderen consolefont probiert. Auf den ersten Blick scheint es etwas besser zu sein, allerdings teste ichs erst ein paar Stunden. Nebenwirkung: auf der seriellen Console (X, minicom) zum einem zweiten Rechner gibt es damit scheinbar Probleme. 

Wer mit testet bitte Feedback, mich nervt dieses Sonderzeichenproblem.

```
emerge media-fonts/terminus-font
```

 */etc/conf.d/consolefont wrote:*   

> CONSOLEFONT="ter-v16b"
> 
> #CONSOLETRANSLATION="egal"

 

----------

## yuhu

Hallo,

das Problem ist auf alle Fälle nervig.

Bis dato bin ich aber noch auf keinen grünen Zweig gekommen, wo der Hund wirklich begraben liegt.

Mit folgenden Einstellungen läuft es bei mir nahezu problemlos.

```
server conf.d # cat /etc/locale.gen

# /etc/locale.gen: list all of the locales you want to have on your system

#

# The format of each line:

# <locale> <charmap>

#

# Where <locale> is a locale located in /usr/share/i18n/locales/ and

# where <charmap> is a charmap located in /usr/share/i18n/charmaps/.

#

# All blank lines and lines starting with # are ignored.

#

# For the default list of supported combinations, see the file:

# /usr/share/i18n/SUPPORTED

#

# Whenever glibc is emerged, the locales listed here will be automatically

# rebuilt for you.  After updating this file, you can simply run `locale-gen`

# yourself instead of re-emerging glibc.

en_US ISO-8859-1

en_US.UTF-8 UTF-8

de_AT ISO-8859-1

de_AT@euro ISO-8859-15

de_AT.UTF-8 UTF-8

```

```
server conf.d # cat /etc/conf.d/consolefont

# consolefont specifies the default font that you'd like Linux to use on the

# console.  You can find a good selection of fonts in /usr/share/consolefonts;

# you shouldn't specify the trailing ".psf.gz", just the font name below.

# To use the default console font, comment out the CONSOLEFONT setting below.

# This setting is used by the /etc/init.d/consolefont script (NOTE: if you do

# not want to use it, run "rc-update del consolefont" as root).

#consolefont="default8x16"

consolefont="lat9w-16"

# consoletranslation is the charset map file to use.  Leave commented to use

# the default one.  Have a look in /usr/share/consoletrans for a selection of

# map files you can use.

#consoletranslation="8859-1_to_uni"

consoletranslation="8859-15_to_uni"

# unicodemap is the unicode map file to use. Leave commented to use the

# default one. Have a look in /usr/share/unimaps for a selection of map files

# you can use.

#unicodemap="iso01"

unicodemap="lat9w"

```

```
server conf.d # cat /etc/conf.d/keymaps

# Use KEYMAP to specify the default console keymap.  There is a complete tree

# of keymaps in /usr/share/keymaps to choose from.

#keymap="us"

keymap="de-latin1-nodeadkeys"

# Should we first load the 'windowkeys' console keymap?  Most x86 users will

# say "yes" here.  Note that non-x86 users should leave it as "no".

windowkeys="YES"

# The maps to load for extended keyboards.  Most users will leave this as is.

extended_keymaps=""

#extended_keymaps="backspace keypad euro2"

# Tell dumpkeys(1) to interpret character action codes to be

# from the specified character set.

# This only matters if you set unicode="yes" in /etc/rc.conf.

# For a list of valid sets, run `dumpkeys --help`

dumpkeys_charset=""

# Some fonts map AltGr-E to the currency symbol ¤ instead of the Euro €

# To fix this, set to "yes"

fix_euro="YES"

```

```
server conf.d # cat /etc/env.d/02locale

# Configuration file for eselect

# This file has been automatically generated.

LANG="de_AT.utf8"

```

```
server etc # locale

LANG=de_AT.utf8

LC_CTYPE="de_AT.utf8"

LC_NUMERIC="de_AT.utf8"

LC_TIME="de_AT.utf8"

LC_COLLATE="de_AT.utf8"

LC_MONETARY="de_AT.utf8"

LC_MESSAGES="de_AT.utf8"

LC_PAPER="de_AT.utf8"

LC_NAME="de_AT.utf8"

LC_ADDRESS="de_AT.utf8"

LC_TELEPHONE="de_AT.utf8"

LC_MEASUREMENT="de_AT.utf8"

LC_IDENTIFICATION="de_AT.utf8"

```

Wichtig ist sicher auch, dass das Terminal-Programm utf8 unterstützt bzw. korrekt eingestellt ist.

----------

## Josef.95

Hmm.., meint ihr kde-base/konsole , oder auch auf der Textkonsole (im tty Terminal) ?

Ich kann das Problem nicht nachvollziehen, hier funkt es mit

```
zgrep NLS /proc/config.gz | grep -v ^#

CONFIG_UDF_NLS=y

CONFIG_NLS=y

CONFIG_NLS_DEFAULT="utf8"

CONFIG_NLS_CODEPAGE_437=y

CONFIG_NLS_CODEPAGE_850=y

CONFIG_NLS_CODEPAGE_1250=y

CONFIG_NLS_ASCII=y

CONFIG_NLS_ISO8859_1=y

CONFIG_NLS_ISO8859_15=y

CONFIG_NLS_UTF8=y
```

 

```
grep -v ^# /etc/conf.d/keymaps 

keymap="de-latin1-nodeadkeys"

windowkeys="YES"

extended_keymaps=""

dumpkeys_charset=""

fix_euro="YES"
```

 

```
grep -v ^# /etc/conf.d/consolefont

consolefont="ter-v16b"
```

 

```
$ env | grep LC

LC_MESSAGES=de_DE.UTF-8

LC_COLLATE=C
```

und unter X mit kde-base/konsole

Standard Zeichen-Zeichenkodierung UTF-8

und der Schrift Bitstream Vera Sans Mono

seit Jahren einwandfrei.

----------

## strangerthandreams

Das hatte ich auch schon, geht aber definitiv weg. Leider weiß ich nicht die genaue Option, deshalb poste ich mal alles was mir grad so einfällt (alles gekürzt auf relevante Stellen):

/etc/conf.d/keymaps

```

KEYMAP="de-latin1-nodeadkeys"

windowkeys="YES"

extended_keymaps=""

dumpkeys_charset=""

fix_euro="NO"

```

/etc/conf.d/consolefont

```

CONSOLEFONT="lat0-16"

consoletranslation="8859-1_to_uni"

```

/etc/rc.conf

```
unicode="YES"
```

/etc/locale.gen

```

de_DE.UTF-8 UTF-8

de_DE ISO-8859-1

de_DE@euro ISO-8859-15

```

/etc/env.d/02locale

```

LANG="de_DE.utf8"

LC_ALL="de_DE.utf8"

GDM_LANG="de_DE.UTF-8"

```

Wer die genaue Stelle findet, soll sie mal bitte hier posten. So als Erhaltung für die Nachwelt, oder wenn ich Gentoo auf mein Tablet installiere in den Semesterferien  :Smile: 

edit: Als Getty hab ich 'mingetty' installiert, da das standardmäßig installierte 'agetty' nicht oder schlecht mit Unicode klarkommt. Nur mal so am Rande.

----------

## musv

 *strangerthandreams wrote:*   

> 
> 
> /etc/conf.d/keymaps
> 
> ```
> ...

 

Mal 'ne dumme Frage:

Warum nehmt ihr alle die Deadkeys raus? Für mich sind die Deadkeys das beste Feature in Sachen Tastatur unter Linux überhaupt. Unter Windows hab ich keine Ahnung, wie ich sonst ohne Kenntnis der ALT+xxx-Codes Buchstaben wie ñ oder ç hinbekommen soll. 

Ok, ich hab auch die Kombination: Gentoo + Nvidia + Amd64 + Utf-8. Das Problem kann ich aber nicht nachvollziehen. Bei mir funktioniert im urxvt-Unicode alle problemlos. Gnome-Terminal oder Konsole (KDE) verwende ich nicht. 

/etc/conf.d/consolefont

```
consolefont="lat9u-16"

#consoletranslation="8859-1_to_uni"

#unicodemap="iso01"
```

/etc/conf.d/keymaps

```
keymap="de-latin1"

windowkeys="YES"

extended_keymaps=""

dumpkeys_charset=""

fix_euro="NO"
```

/etc/rc.conf

```
unicode="YES"
```

/etc/locale.gen

```
de_DE.UTF-8 UTF-8

pt_BR.UTF-8 UTF-8
```

/etc/env.d/02locale

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

LANGUAGE="de_DE:de"

LC_CTYPE="de_DE.UTF-8"

LC_NUMERIC="de_DE.UTF-8"

LC_TIME="de_DE.UTF-8"

LC_COLLATE="de_DE.UTF-8"

LC_MONETARY="de_DE.UTF-8"

LC_MESSAGES="de_DE.UTF-8"

LC_PAPER="de_DE.UTF-8"

LC_NAME="de_DE.UTF-8"

LC_ADDRESS="de_DE.UTF-8"

LC_TELEPHONE="de_DE.UTF-8"

LC_MEASUREMENT="de_DE.UTF-8"

LC_IDENTIFICATION="de_DE.UTF-8"
```

----------

## strangerthandreams

 *musv wrote:*   

> 
> 
> Warum nehmt ihr alle die Deadkeys raus? Für mich sind die Deadkeys das beste Feature in Sachen Tastatur unter Linux überhaupt. Unter Windows hab ich keine Ahnung, wie ich sonst ohne Kenntnis der ALT+xxx-Codes Buchstaben wie ñ oder ç hinbekommen soll. 

 

Die Frage kann ich Dir beantworten: Die meistens Leute brauchen die schlicht und einfach nicht. Mein Alphabet hat 26 + 4 Buchstaben; damit bin ich bestens ausgestattet und erreiche 90% aller Menschen.

----------

## pablo_supertux

Also, ich mag deadkeys, vor allem, weil ich ständig á, í, ó verwenden muss, wenn ich meiner Mutter eine Mail schreibe.

----------

## yuhu

wie es aussieht gibt es ein paar funktionierende combos, aber leider weiß keiner warum bzw. was es wirklich ist, wenn es nicht funktioniert.

----------

## Polynomial-C

Leider kann ich zur Ursachenanalyse nicht wirklich etwas beitragen. 

Meine Vernutung ist, daß die Konsolen nicht korrekt in den unicode Modus umgeschaltet sind. Ich hatte vor einigen Jahren das gleiche Problem allerdings umgekehrt (ich wollte noch kein unicode verwenden, die Konsole hingegen schon).

Das Paket sys-apps/kbd enthält zwei Skripte, mit denen man bei Konsolen unicode ab-/anschalten kann: 

```
# qlist -C kbd | grep "bin/unicode"

/usr/bin/unicode_start

/usr/bin/unicode_stop
```

Spielt mit diesen Skripten mal rum bzw. schaut euch mal deren Inhalt an. Mir hatte das damals geholfen noch eine Weile auf ISO-8859-15 zu bleiben. Zumindest bekommt man durch die Skripte einen Einblick, was alles passieren muß um eine Konsole zwischen unicode und normalem ascii umzustellen.

Empfehlenswert ist es auch, das unicode useflag beim Paket sys-apps/openrc zu setzen bzw. in der /etc/rc.conf zu aktivieren (was eben genau die Funktion des useflags bei openrc ist): 

```
# grep ^unicode /etc/rc.conf 

unicode="YES"
```

Ansonsten solltet ihr einen unicode-fähigen Zeichensatz für die Konsole verwenden. Ich persönlich verwende gerne lat9w-16 weil mir der Schrifttyp einfach am besten gefällt, jedoch scheint dieser font nicht alle unicode-Zeichen zu beinhalten, was man besonders dann gut erkennen kann, wenn man mal größere Pakete kompiliert und dann immer wieder so lustige "�" Zeichen zu sehen bekommt. Die normale Zeicheneingabe per Tastatur sollte davon jedoch nicht betroffen sein, sofern die Konsole korrekt auf unicode umgestellt wurde.

Der terminus font (media-fonts/terminus-font) ist noch eine gute Alternative, sofern man den Schrifttyp mag, der sich doch schon etwas von der "Standardschrift" unterscheidet. Bei meinen Tests war das zumindest der einzige Zeichensatz, der keine "�" Zeichen ausgegeben hat.

----------

