Ubuntu Zeichenprobleme beheben: Kompletter Guide für korrekte Anzeige & Eingabe

目次

1. Einführung

Bei der Nutzung von Ubuntu kann es unter bestimmten Umständen zu Problemen mit der Zeichenkodierung (sogenannten „Mojibake“) kommen. Dies kann sich auf verschiedene Weisen äußern, z.B. bei der Ausgabe im Terminal, der Anzeige japanischer Dateinamen oder beim Surfen auf japanischen Webseiten. Oftmals werden japanische Zeichen in den Standardeinstellungen nicht korrekt dargestellt, was eine entsprechende Konfiguration erforderlich macht.

Dieser Artikel erklärt die Ursachen für Zeichenkodierungsprobleme in Ubuntu und bietet konkrete Lösungen. Die Zielgruppe sind Nutzer, die:

  • Ubuntu-Anfänger sind und die Einstellungen für die japanische Anzeige noch nicht vorgenommen haben.
  • Die Ursachen von Zeichenkodierungsproblemen verstehen und nach grundlegenden Lösungen suchen.
  • Zeichenkodierungsprobleme in der Terminal- oder GUI-Umgebung haben und nach Abhilfemaßnahmen suchen.

Beginnen wir zunächst mit den Hauptursachen für Zeichenkodierungsprobleme in Ubuntu.

2. Hauptursachen für Zeichenkodierungsprobleme

Fehlerhafte Lokaleinstellungen

Die Locale-Einstellungen (Locale) in Ubuntu bestimmen die Systemsprache und das Datumsformat. Wenn diese nicht korrekt konfiguriert sind, können japanische Zeichen nicht angezeigt werden oder es kommt zu Zeichenkodierungsproblemen.

Wenn zum Beispiel der Befehl locale die Ausgabe „C“ oder „POSIX“ anzeigt, sind die Locale-Einstellungen möglicherweise nicht richtig konfiguriert:

$ locale
LANG=C
LC_ALL=

Für eine japanische Umgebung sollte idealerweise LANG=ja_JP.UTF-8 eingestellt sein.

Nicht installierte oder fehlende Schriftarten

In der Standardinstallation von Ubuntu sind japanische Schriftarten möglicherweise nicht enthalten. Dies kann dazu führen, dass japanischer Text nicht korrekt angezeigt wird und stattdessen leere Quadrate (□) oder unsinnige Symbole erscheinen.

Fehlende Schriftarten äußern sich besonders in folgenden Situationen:

  • Menüs und Schaltflächen in GUI-Anwendungen zeigen Zeichenkodierungsprobleme.
  • Japanische Texte in Texteditoren werden fehlerhaft dargestellt.

Inkonsistente Zeichenkodierungen

Ubuntu verwendet standardmäßig UTF-8. Wenn jedoch Dateien mit anderen Zeichenkodierungen wie Shift_JIS oder EUC-JP von externen Quellen geöffnet werden, kann es zu Zeichenkodierungsproblemen kommen.

Beispielsweise können beim Öffnen von Dateien, die in einer Windows-Umgebung erstellt wurden, in Ubuntu folgende Phänomene auftreten:

  • Unsinnige Symbole werden im Texteditor angezeigt.
  • Zeichen werden im Terminal beim Ausführen des Befehls cat zerstückelt dargestellt.

Fehlkonfiguration von Terminal oder Editor

Wenn Terminal oder Editor nicht korrekt konfiguriert sind, können selbst UTF-8-kodierte Dateien nicht richtig angezeigt werden.

  • Die Encoding-Einstellung des Terminals ist nicht UTF-8.
  • Die automatische Zeichenkodierungserkennung in Editoren wie Vim oder VSCode funktioniert nicht.
  • Beim Anzeigen mit less oder cat werden japanische Teile als „?“ oder „◇“ dargestellt.

3. Locale-Einstellungen überprüfen und korrigieren

Überprüfung der Locale-Einstellungen

Um die aktuellen Locale-Einstellungen zu überprüfen, führen Sie den folgenden Befehl aus:

locale

Beispiel einer Ausgabe:

LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

In diesem Fall ist LANG=C, was darauf hindeutet, dass die japanische Umgebung nicht korrekt konfiguriert ist. Für eine japanische Umgebung sollte es idealerweise wie folgt aussehen:

LANG=ja_JP.UTF-8
LC_ALL=ja_JP.UTF-8

Installation und Konfiguration des japanischen Locale

1. Japanisches Locale überprüfen und hinzufügen

Um zu überprüfen, ob das japanische Locale im System installiert ist, führen Sie den folgenden Befehl aus:

locale -a | grep ja_JP

Beispiel einer Ausgabe:

ja_JP.eucJP
ja_JP.utf8

Wenn ja_JP.utf8 nicht in der Liste angezeigt wird, müssen Sie das japanische Locale installieren.

Führen Sie die folgenden Befehle aus, um das japanische Locale hinzuzufügen:

sudo apt update
sudo apt install -y language-pack-ja

Aktivieren Sie anschließend das Locale mit den folgenden Befehlen:

sudo locale-gen ja_JP.UTF-8
sudo update-locale LANG=ja_JP.UTF-8

2. System-Locale konfigurieren

Um die Locale-Änderung systemweit anzuwenden, führen Sie die folgenden Befehle aus:

export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8

Um diese Einstellung dauerhaft zu speichern, fügen Sie sie zu ~/.bashrc oder ~/.profile hinzu:

echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=ja_JP.UTF-8' >> ~/.bashrc
source ~/.bashrc

Oder, um die Einstellung für alle Benutzer zu übernehmen, bearbeiten Sie die folgende Datei:

sudo nano /etc/default/locale

Fügen Sie den folgenden Inhalt hinzu oder ändern Sie ihn:

LANG=ja_JP.UTF-8
LC_ALL=ja_JP.UTF-8

Um die Einstellungen zu übernehmen, melden Sie sich ab und wieder an oder starten Sie das System neu.

4. Schriftarten installieren und konfigurieren

Notwendigkeit japanischer Schriftarten

In der Standardinstallation von Ubuntu sind japanische Schriftarten möglicherweise nicht enthalten. Dies kann dazu führen, dass japanischer Text nicht korrekt angezeigt wird und stattdessen leere Quadrate (□) oder unsinnige Symbole erscheinen.

Fehlende Schriftarten äußern sich besonders in folgenden Situationen:

  • Menüs und Schaltflächen in GUI-Anwendungen zeigen Zeichenkodierungsprobleme.
  • Japanische Texte in Texteditoren werden fehlerhaft dargestellt.

Empfohlene japanische Schriftarten

Folgende japanische Schriftarten können in Ubuntu verwendet werden:

SchriftartnameMerkmal
Noto Sans CJK JPHochwertige japanische Schriftart von Google (standardmäßig empfohlen)
Takao-SchriftartTraditionelle Ubuntu-Standardschriftart (mit dünnen und fetten Varianten)
IPA-SchriftartHochwertige Schriftart, bereitgestellt von Information-technology Promotion Agency (IPA)
VL GothicHohe Lesbarkeit, optimiert für Terminals

Installation von Schriftarten

1. Noto Sans CJK JP (Standardmäßig empfohlene Schriftart)

sudo apt update
sudo apt install -y fonts-noto-cjk

2. Takao-Schriftart

sudo apt install -y fonts-takao

3. IPA-Schriftart (Information-technology Promotion Agency)

sudo apt install -y fonts-ipafont

4. VL Gothic (für Terminals)

sudo apt install -y fonts-vlgothic

Nach Abschluss der Installation starten Sie das System neu oder aktualisieren Sie den Schriftart-Cache, um die Einstellungen zu übernehmen.

fc-cache -fv

Konfiguration von Schriftarten

Schriftarteinstellungen in GUI-Anwendungen

  1. Öffnen Sie die App „Einstellungen“.
  2. Öffnen Sie den Abschnitt „Schriftarten“.
  3. Ändern Sie „Standardschriftart“, „Dokumentschriftart“ und „Monospaced-Schriftart“ nach Ihren Wünschen.
  4. Melden Sie sich ab und wieder an, um die Einstellungen zu übernehmen.

Schriftarteinstellungen im Terminal

  1. Öffnen Sie das Terminal.
  2. Wählen Sie im Menü „Einstellungen“ → „Profil bearbeiten“.
  3. Aktivieren Sie im Abschnitt „Schriftart“ die Option „Benutzerdefinierte Schriftart verwenden“.
  4. Wählen Sie Ihre bevorzugte Schriftart (z.B. Noto Sans Mono CJK JP).
  5. Speichern Sie die Einstellungen und starten Sie das Terminal neu.

Anwendung und Überprüfung der Einstellungen

Um zu überprüfen, ob die Schriftarteinstellungen korrekt angewendet wurden, versuchen Sie Folgendes:

  1. Überprüfen Sie installierte Schriftarten mit dem Befehl fc-list.
fc-list | grep "Noto"
  1. Überprüfen Sie die Anzeige von Japanisch im Terminal.
echo "こんにちは、Ubuntuの文字化け対策"
  1. Überprüfen Sie, ob Japanisch in GUI-Anwendungen (Firefox, LibreOffice usw.) korrekt angezeigt wird.

5. Zeichenkodierung überprüfen und konvertieren

Was ist Zeichenkodierung?

Zeichenkodierung ist eine Regel, um Zeichen als digitale Daten zu behandeln. Zu den gängigen Zeichenkodierungen gehören:

ZeichenkodierungMerkmalHauptanwendung
UTF-8Mehrsprachig, Standard unter LinuxUbuntu und Webentwicklung
Shift_JISSpezifisch für Japanisch, unter Windows dominantWindows-Anwendungen, ältere Systeme
EUC-JPWurde in UNIX-ähnlichen Systemen verwendetÄltere Linux-Systeme
ISO-2022-JPWird in E-Mails und bestimmten Umgebungen verwendetE-Mail-Versand und -Empfang

Ubuntu verwendet standardmäßig UTF-8. Wenn Dateien, die in einer anderen Zeichenkodierung gespeichert sind, geöffnet werden, kann es zu Zeichenkodierungsproblemen kommen.

Zeichenkodierung von Dateien überprüfen

1. Verwenden Sie den Befehl file

file -i sample.txt

Beispiel einer Ausgabe:

sample.txt: text/plain; charset=iso-8859-1

2. Verwenden Sie den Befehl nkf

sudo apt install -y nkf
nkf --guess sample.txt

Beispiel einer Ausgabe:

Shift_JIS (CRLF)

Zeichenkodierung konvertieren

1. Verwenden Sie den Befehl iconv

Beispiel: Konvertierung von Shift_JIS nach UTF-8:

iconv -f SHIFT_JIS -t UTF-8 sample.txt -o sample_utf8.txt

Beispiel: Konvertierung von EUC-JP nach UTF-8:

iconv -f EUC-JP -t UTF-8 sample.txt -o sample_utf8.txt

2. Verwenden Sie den Befehl nkf

Beispiel: Konvertierung von Shift_JIS nach UTF-8:

nkf -w sample.txt > sample_utf8.txt

Beispiel: Konvertierung von EUC-JP nach UTF-8:

nkf -w --overwrite sample.txt

Maßnahmen gegen Zeichenkodierungsprobleme in Terminal und Editor

1. Korrektes Anzeigen mit dem Befehl less

export LESSCHARSET=utf-8
less sample.txt

2. Öffnen mit指定ierter Zeichenkodierung in vim

vim -c "set encoding=utf-8" sample.txt

3. Zeichenkodierung in gedit oder VSCode ändern

  • gedit (Standard-GNOME-Editor)
  1. Öffnen Sie die Datei mit gedit sample.txt.
  2. Beim „Speichern unter“ die „Kodierung“ auf UTF-8 ändern.
  • VSCode (Visual Studio Code)
  1. Klicken Sie unten rechts auf „Kodierung“.
  2. Konvertieren Sie zu UTF-8.

6. Überprüfung der Terminal- und Editor-Einstellungen

Terminal-Einstellungen überprüfen und korrigieren

1. Encoding-Einstellung des Terminals überprüfen

Um die aktuellen Umgebungsvariablen zu überprüfen, führen Sie die folgenden Befehle aus:

echo $LANG
echo $LC_ALL

Beispiel einer Ausgabe (bei korrekter Einstellung)

ja_JP.UTF-8
ja_JP.UTF-8

Wenn es sich um C oder POSIX handelt, müssen Sie es auf das entsprechende Locale (ja_JP.UTF-8) ändern.

2. Schriftarteinstellung des Terminals

GNOME Terminal (Standard-Terminal)

  1. Öffnen Sie das Terminal.
  2. Öffnen Sie im Menü „Einstellungen“.
  3. Öffnen Sie „Profil bearbeiten“ → Registerkarte „Text“.
  4. Aktivieren Sie „Benutzerdefinierte Schriftart verwenden“ und wählen Sie eine der folgenden Optionen:
  • Noto Sans Mono CJK JP
  • VL Gothic
  • Takao Gothic
  1. Speichern Sie die Einstellungen und starten Sie das Terminal neu.

Zeichenkodierungseinstellungen des Texteditors

1. Zeichenkodierungseinstellung von Vim

Um die aktuellen Einstellungen zu überprüfen, öffnen Sie Vim und führen Sie die folgenden Befehle aus:

:set encoding?
:set fileencoding?

Beispiel einer Ausgabe:

encoding=utf-8
fileencoding=utf-8

Wenn es sich nicht um utf-8 handelt, fügen Sie Folgendes zur Vim-Konfigurationsdatei (~/.vimrc) hinzu, um UTF-8 als Standard festzulegen:

set encoding=utf-8
set fileencodings=utf-8,sjis,euc-jp
set fileformats=unix,dos,mac

2. Zeichenkodierungseinstellung von Nano

Um die Standardeinstellung zu ändern, fügen Sie Folgendes zur Konfigurationsdatei (~/.nanorc) hinzu:

set encoding "utf-8"

3. Zeichenkodierungseinstellung von VSCode (Visual Studio Code)

  1. Klicken Sie unten rechts im Editorfenster auf „Kodierung“.
  2. Wählen Sie unter „Kodierung ändern“ die Option UTF-8.
  3. Führen Sie bei Bedarf „Mit Kodierung speichern“ aus.

Um die Standardeinstellung auf UTF-8 zu setzen, fügen Sie außerdem Folgendes zur Konfigurationsdatei (settings.json) hinzu:

"files.encoding": "utf8"

7. Fallbasierte Lösungen

Maßnahmen gegen Zeichenkodierungsprobleme in GUI-Anwendungen

1. Japanische Anzeige in Firefox oder Chrome ist fehlerhaft

Lösung:

  1. Installieren Sie die erforderlichen Schriftarten.
sudo apt install -y fonts-noto-cjk fonts-ipafont
  1. Überprüfen Sie die Schriftarteinstellungen des Browsers.
  • Firefox:
    1. Gehen Sie zu about:preferences und öffnen Sie „Schriftarten & Farben“ → „Erweitert“.
    2. Ändern Sie „Proportional“ und „Monospace“ auf Noto Sans CJK JP.
  • Chrome:
    1. Gehen Sie zu chrome://settings/fonts.
    2. Ändern Sie „Standardschriftart“ und „Monospace-Schriftart“ auf Noto Sans CJK JP.

2. Japanische Zeichenkodierungsprobleme in LibreOffice

Lösung:

  1. Installieren Sie fonts-noto-cjk und fonts-ipafont.
  2. Ändern Sie die Einstellungen von LibreOffice.
  • „Extras“ → „Optionen“ → „LibreOffice“ → „Schriftarten“
  • Ändern Sie „Standardschriftart“ auf Noto Sans CJK JP.

Maßnahmen gegen Zeichenkodierungsprobleme in der CUI-Umgebung

1. Zeichenkodierungsprobleme bei SSH-Verbindungen

Lösung:

  1. Überprüfen Sie das locale auf dem Server und stellen Sie sicher, dass es auf ja_JP.UTF-8 eingestellt ist.
locale
  1. Wenn es nicht auf ja_JP.UTF-8 eingestellt ist, führen Sie Folgendes aus:
sudo apt install -y language-pack-ja
sudo locale-gen ja_JP.UTF-8
sudo update-locale LANG=ja_JP.UTF-8

Maßnahmen gegen Zeichenkodierungsprobleme in bestimmten Anwendungen

1. Zeichenkodierungsprobleme in WSL (Windows Subsystem for Linux)

Lösung:

  1. Stellen Sie das WSL-Locale auf ja_JP.UTF-8 ein.
echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=ja_JP.UTF-8' >> ~/.bashrc
source ~/.bashrc
  1. Ändern Sie die Schriftart des Windows-Terminals auf Noto Sans Mono CJK JP.

2. Zeichenkodierungsprobleme in Docker-Containern

Lösung:

  1. Gehen Sie in den Docker-Container und überprüfen Sie das Locale.
docker exec -it container_name bash
locale
  1. Fügen Sie das japanische Locale hinzu.
apt update && apt install -y locales
locale-gen ja_JP.UTF-8
export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8

8. FAQ (Häufig gestellte Fragen)

F1. Ich habe das Locale eingestellt, aber die Zeichenkodierungsprobleme wurden nicht behoben.

A: Wenn die Zeichenkodierungsprobleme auch nach korrekter Locale-Einstellung nicht behoben sind, überprüfen Sie Folgendes:

locale

Wenn es nicht LANG=ja_JP.UTF-8 ist, ist eine Neukonfiguration erforderlich.

sudo update-locale LANG=ja_JP.UTF-8
sudo locale-gen ja_JP.UTF-8
sudo dpkg-reconfigure locales

F2. Nur bestimmte Dateien zeigen Zeichenkodierungsprobleme.

A: Die Zeichenkodierung kann von Datei zu Datei unterschiedlich sein. Überprüfen Sie die Zeichenkodierung mit der folgenden Methode:

file -i sample.txt

Wenn es nicht UTF-8 ist, ist eine Konvertierung erforderlich.

iconv -f SHIFT_JIS -t UTF-8 sample.txt -o sample_utf8.txt

Oder, wenn Sie nkf verwenden:

nkf -w --overwrite sample.txt

F3. Japanische Eingabe ist im Terminal nicht möglich.

A: Überprüfen Sie, ob japanische Eingabemethoden (Fcitx oder IBus) installiert sind.

sudo apt update
sudo apt install -y fcitx-mozc
im-config -n fcitx

F4. Japanisch zeigt Zeichenkodierungsprobleme in WSL (Windows Subsystem for Linux).

A: Stellen Sie das WSL-Locale auf ja_JP.UTF-8 ein.

echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=ja_JP.UTF-8' >> ~/.bashrc
source ~/.bashrc

F5. Japanisch zeigt Zeichenkodierungsprobleme in Docker-Containern.

A: Wenn das Locale des Docker-Containers auf C.UTF-8 eingestellt ist, wird Japanisch nicht korrekt angezeigt.

apt update && apt install -y locales
locale-gen ja_JP.UTF-8
export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8

F6. Menüs und Dialoge in Ubuntu GUI-Apps zeigen Zeichenkodierungsprobleme.

A: Installieren Sie fonts-noto-cjk und ändern Sie die Schriftarteinstellungen.

sudo apt install -y fonts-noto-cjk fonts-ipafont

9. Zusammenfassung

Dieser Artikel hat die **Probleme mit der Zeichenkodierung in Ubuntu** sowie deren Ursachen und Lösungen ausführlich erläutert. Zeichenkodierungsprobleme treten aufgrund von fehlerhaften Locale-Einstellungen, nicht installierten Schriftarten oder inkonsistenten Zeichenkodierungen auf, können aber durch die richtige Konfiguration vermieden werden.

1. Hauptursachen für Zeichenkodierungsprobleme

  • Fehlkonfiguration des Locale: Wenn die Standardsprache von Ubuntu auf C oder POSIX eingestellt ist, wird Japanisch nicht korrekt angezeigt.
  • Nicht eingestellte Schriftarten: Wenn japanische Schriftarten nicht installiert sind, treten Zeichenkodierungsprobleme in der GUI oder im Terminal auf.
  • Inkonsistente Zeichenkodierungen: Das Öffnen von Dateien mit anderen Zeichenkodierungen (wie Shift_JIS) führt zu Zeichenkodierungsproblemen.
  • Fehlkonfiguration von Terminal oder Editor: Wenn nicht auf UTF-8 eingestellt, wird es nicht korrekt angezeigt.

2. Lösungen für Zeichenkodierungsprobleme

BereichLösung
Locale-EinstellungMit locale überprüfen und update-locale LANG=ja_JP.UTF-8 ausführen.
Schriftarteninstallationsudo apt install -y fonts-noto-cjk fonts-ipafont
Zeichenkodierung überprüfenDateizeichenkodierung mit file -i oder nkf --guess überprüfen.
Zeichenkodierung konvertiereniconv -f SHIFT_JIS -t UTF-8 dateiname -o konvertierte_dateiname
Terminal-EinstellungLESSCHARSET=utf-8 einstellen und Schriftart auf Noto Sans Mono CJK JP ändern.
GUI-ZeichenkodierungsproblemeSchriftart auf Noto Sans CJK JP einstellen und bei Bedarf gnome-tweaks verwenden.
WSL-ZeichenkodierungsproblemeLANG=ja_JP.UTF-8 einstellen und Schriftart ändern.
Docker-Zeichenkodierungsproblemelocale-gen ja_JP.UTF-8 ausführen und Locale in Dockerfile einstellen.

3. Zusätzliche Maßnahmen

  • System regelmäßig aktualisieren: Veraltete Ubuntu-Pakete können die japanische Umgebung beeinträchtigen.
sudo apt update && sudo apt upgrade -y
  • Einstellungen dauerhaft speichern: Änderungen zu ~/.bashrc oder ~/.profile hinzufügen, damit sie beim Login angewendet werden.
  • Backups erstellen: Bevor Sie Konfigurationsdateien wie /etc/default/locale ändern, erstellen Sie ein Backup.

Fazit

Zeichenkodierungsprobleme in Ubuntu können durch die korrekte Einstellung der vier Elemente **Locale, Schriftarten, Zeichenkodierung und Terminaleinstellungen** gelöst werden. Durch die Anwendung der in diesem Artikel beschriebenen Methoden können Zeichenkodierungsprobleme in den meisten Umgebungen vermieden werden.