Kompletny przewodnik naprawy zniekształconego tekstu w Ubuntu | Przyczyny, rozwiązania i zmiany konfiguracji

目次

1. Wstęp

Korzystając z Ubuntu, możesz napotkać zniekształcony tekst w niektórych sytuacjach. Może to zdarzyć się w wyjściu terminala, przy wyświetlaniu japońskich nazw plików lub podczas przeglądania japońskich stron internetowych, w zależności od Twojego środowiska. W wielu przypadkach japoński może nie wyświetlać się poprawnie przy domyślnych ustawieniach, co wymaga właściwej konfiguracji.
W tym artykule wyjaśnimy przyczyny zniekształconego tekstu w Ubuntu i przedstawimy konkretne rozwiązania, które pomogą go naprawić. Poradnik jest przeznaczony dla:

  • początkujących użytkowników Ubuntu, którzy nie skonfigurowali jeszcze ustawień wyświetlania japońskiego,
  • osób chcących zrozumieć przyczyny zniekształconego tekstu i znaleźć fundamentalne rozwiązania,
  • użytkowników doświadczających zniekształconego tekstu w terminalu lub środowisku graficznym i chcących dowiedzieć się, jak to naprawić.

Zacznijmy od przyjrzenia się głównym przyczynom zniekształconego tekstu w Ubuntu.

2. Główne przyczyny zniekształconego tekstu

Nieprawidłowe ustawienia lokalizacji

Lokalizacje w Ubuntu definiują język systemu oraz formatowanie dat. Jeśli nie są poprawnie skonfigurowane, japoński tekst może nie wyświetlać się prawidłowo, co prowadzi do zniekształconych znaków.
Na przykład, jeśli uruchomisz polecenie locale i zobaczysz w wyniku „C” lub „POSIX”, Twoje ustawienia lokalizacji mogą być nieprawidłowe:

$ locale
LANG=C
LC_ALL=

Idealnie, w środowisku japońskim powinno być ustawione LANG=ja_JP.UTF-8.

Brakujące lub niewystarczające czcionki

Domyślnie Ubuntu może nie mieć zainstalowanych czcionek japońskich. W rezultacie japoński tekst może nie być renderowany poprawnie i zamiast tego wyświetlać się jako kwadratowe pola (□) lub losowe symbole.
Problemy z czcionkami można zidentyfikować w następujących przypadkach:

  • Zniekształcony tekst pojawia się w menu i przyciskach aplikacji graficznych,
  • Japoński tekst w edytorze tekstu jest zniekształcony.

Niepasująca kodowanie znaków

Choć Ubuntu używa głównie UTF-8 jako standardowego kodowania, otwieranie plików zakodowanych w Shift_JIS lub EUC-JP pochodzących z zewnętrznych źródeł może powodować zniekształcony tekst.
Na przykład otwarcie pliku utworzonego w środowisku Windows na Ubuntu może skutkować następującym:

  • Nieczytelne znaki po otwarciu w edytorze tekstu,
  • Zniekształcony tekst przy użyciu polecenia cat w terminalu.

Nieprawidłowe ustawienia terminala lub edytora

Nawet jeśli plik jest zakodowany w UTF‑8, nieodpowiednie ustawienia terminala lub edytora mogą uniemożliwić prawidłowe renderowanie tekstu.

  • Kodowanie terminala jest ustawione na coś innego niż UTF-8,
  • Edytory tekstu, takie jak Vim lub VSCode, nie wykrywają automatycznie właściwego kodowania,
  • Japońskie znaki pojawiają się jako „?” lub „◇” przy wyświetlaniu za pomocą less lub cat.

3. Sprawdzanie i naprawa ustawień lokalizacji

Jak sprawdzić ustawienia lokalizacji

Aby sprawdzić bieżące ustawienia lokalizacji, uruchom następujące polecenie:

locale

Przykładowy wynik:

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=

Jeśli wyświetlone jest LANG=C, system nie jest poprawnie skonfigurowany pod kątem japońskiego. Poprawnie skonfigurowane środowisko japońskie powinno wyglądać tak:

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

Instalacja i konfiguracja japońskiej lokalizacji

1. Sprawdź i dodaj japońską lokalizację

Aby sprawdzić, czy japońska lokalizacja jest zainstalowana, uruchom:

locale -a | grep ja_JP

Przykładowy wynik:

ja_JP.eucJP
ja_JP.utf8

Jeśli ja_JP.utf8 jest nieobecny, zainstaluj japońską lokalizację poleceniem:

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

Następnie wygeneruj lokalizację i zaktualizuj ustawienia systemowe:

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

2. Ustaw lokalizację systemową

Aby zastosować zmiany w całym systemie, uruchom:

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

Aby te zmiany były trwałe, dodaj je do ~/.bashrc lub ~/.profile:

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

W przypadku zmian systemowych edytuj:

sudo nano /etc/default/locale

I dodaj lub zmodyfikuj następujące:

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

Aby zastosować ustawienia, wyloguj się i zaloguj ponownie lub uruchom ponownie system.

4. Instalowanie i konfigurowanie czcionek

Dlaczego czcionki japońskie są potrzebne

Domyślnie Ubuntu może nie mieć zainstalowanych czcionek japońskich. Może to skutkować nieprawidłowo wyświetlanym tekstem japońskim, pojawiającym się jako kwadratowe pudełka (□) lub nieczytelne symbole. Problemy związane z czcionkami można zaobserwować w następujących przypadkach:

  • Menu i przyciski w aplikacjach graficznych wyświetlają się zniekształcone
  • Japoński tekst w edytorze tekstu wyświetla się niepoprawnie

Zalecane czcionki japońskie

Oto kilka zalecanych czcionek japońskich dla Ubuntu:

Font Name

Funkcje

Noto Sans CJK JP

Czcionka japońska wysokiej jakości dostarczona przez Google (zalecana jako domyślna)

Takao Fonts

Poprzednio domyślna czcionka dla Ubuntu (dostępna w wersjach cienkiej i pogrubionej)

IPA Fonts

Czcionki wysokiej jakości dostarczone przez Agencję Promocji Technologii Informacyjnych (IPA)

VL Gothic

Bardzo czytelne i zoptymalizowane pod użycie w terminalu

Jak zainstalować czcionki

1. Zainstaluj Noto Sans CJK JP (zalecana domyślna czcionka)

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

2. Zainstaluj czcionki Takao

sudo apt install -y fonts-takao

3. Zainstaluj czcionki IPA (Information-technology Promotion Agency)

sudo apt install -y fonts-ipafont

4. Zainstaluj VL Gothic (optymalizowany dla terminala)

sudo apt install -y fonts-vlgothic

Po zainstalowaniu czcionek uruchom ponownie system lub odśwież pamięć podręczną czcionek za pomocą:

fc-cache -fv

Jak skonfigurować czcionki

Ustawianie czcionek w aplikacjach graficznych

  1. Otwórz aplikację „Ustawienia”
  2. Przejdź do sekcji „Czcionki”
  3. Zmień „Standardową czcionkę”, „Czcionkę dokumentu” i „Czcionkę monospaced” na wybraną czcionkę
  4. Wyloguj się i zaloguj ponownie, aby zastosować ustawienia

Ustawianie czcionek w terminalu

  1. Otwórz terminal
  2. Przejdź do „Preferencje” → „Preferencje profilu”
  3. Zaznacz pole „Użyj własnej czcionki”
  4. Wybierz preferowaną czcionkę (np. Noto Sans Mono CJK JP)
  5. Zapisz ustawienia i uruchom ponownie terminal

Zastosowanie i weryfikacja ustawień czcionek

Aby sprawdzić, czy ustawienia czcionek zostały poprawnie zastosowane, wykonaj następujące kroki:

  1. Sprawdź zainstalowane czcionki przy użyciu polecenia fc-list
fc-list | grep "Noto"
  1. Przetestuj wyświetlanie japońskiego tekstu w terminalu
echo "こんにちは、Ubuntuの文字化け対策"
  1. Sprawdź, czy japoński tekst wyświetla się poprawnie w aplikacjach graficznych (Firefox, LibreOffice itp.)

5. Sprawdzanie i konwertowanie kodowania znaków

Co to jest kodowanie znaków?

Kodowanie znaków to system, który przypisuje cyfrowe kody do znaków. Niektóre powszechnie używane kodowania to:

Encoding

Features

Primary Usage

UTF-8

Supports multiple languages, the standard for Linux

Ubuntu, Web development

Shift_JIS

Japanese-specific, commonly used in Windows

Windows applications, legacy systems

EUC-JP

Used in UNIX-based systems

Older Linux systems

ISO-2022-JP

Used for emails and specific environments

Email communication

Ponieważ Ubuntu głównie używa UTF-8, otwieranie plików w innych kodowaniach (takich jak Shift_JIS) może powodować zniekształcony tekst.

Jak sprawdzić kodowanie znaków pliku

1. Użyj polecenia file

file -i sample.txt

Przykładowe wyjście:

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

2. Użyj polecenia nkf

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

Przykładowe wyjście:

Shift_JIS (CRLF)

Jak konwertować kodowanie znaków

1. Konwertuj przy użyciu polecenia iconv

Konwertuj Shift_JIS na UTF-8:

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

Konwertuj EUC-JP na UTF-8:

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

2. Konwertuj przy użyciu polecenia nkf

Konwertuj Shift_JIS na UTF-8:

nkf -w sample.txt > sample_utf8.txt

Konwertuj EUC-JP na UTF-8:

nkf -w --overwrite sample.txt

Zapobieganie zniekształconemu tekstowi w terminalu i edytorach

1. Użyj polecenia less, aby wyświetlać poprawnie

export LESSCHARSET=utf-8
less sample.txt

2. Określ kodowanie znaków w vim

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

3. Zmień kodowanie w gedit lub VSCode

  • gedit (domyślny edytor GNOME)
  1. Otwórz plik poleceniem gedit sample.txt
  2. Przy zapisywaniu zmień kodowanie na UTF-8
  • VSCode (Visual Studio Code)
  1. Kliknij „Encoding” (Kodowanie) na dole ekranu
  2. Wybierz UTF-8

6. Sprawdzanie ustawień terminala i edytora

Sprawdzanie i naprawianie ustawień terminala

1. Sprawdź ustawienia kodowania terminala

Aby sprawdzić bieżące zmienne środowiskowe, uruchom następujące polecenia:

echo $LANG
echo $LC_ALL

Przykładowe wyjście (poprawne ustawienia):

ja_JP.UTF-8
ja_JP.UTF-8

Jeśli wynik to C lub POSIX, musisz zmienić ustawienia lokalizacji na ja_JP.UTF-8.

2. Skonfiguruj czcionki terminala

GNOME Terminal (Domyślny terminal)

  1. Otwórz terminal
  2. Przejdź do „Preferencje”
  3. Otwórz „Preferencje profilu” i przejdź do zakładki „Tekst”
  4. Włącz „Użyj niestandardowej czcionki” i wybierz jedną z następujących:
  • Noto Sans Mono CJK JP
  • VL Gothic
  • Takao Gothic
  1. Zapisz ustawienia i uruchom ponownie terminal

Ustawianie kodowania znaków w edytorach tekstu

1. Skonfiguruj kodowanie w Vim

Aby sprawdzić bieżące ustawienia, otwórz Vim i uruchom:

:set encoding?
:set fileencoding?

Oczekiwany wynik:

encoding=utf-8
fileencoding=utf-8

Jeśli nie jest ustawione na utf-8, dodaj następujące do pliku ~/.vimrc, aby UTF-8 było domyślnym:

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

2. Skonfiguruj kodowanie w Nano

Aby zmienić domyślne ustawienie, dodaj następującą linię do ~/.nanorc:

set encoding "utf-8"

3. Skonfiguruj kodowanie w VSCode

  1. Kliknij „Kodowanie” w prawym dolnym rogu okna VSCode
  2. Wybierz UTF-8
  3. Jeśli potrzeba, użyj „Zapisz z kodowaniem”

Aby ustawić UTF-8 jako domyślne kodowanie, dodaj następujące do pliku settings.json:

"files.encoding": "utf8"

7. Rozwiązywanie problemów w konkretnych przypadkach

Naprawa zniekształconego tekstu w aplikacjach GUI

1. Problemy z wyświetlaniem japońskiego w Firefox i Chrome

Rozwiązanie:

  1. Zainstaluj niezbędne czcionki
sudo apt install -y fonts-noto-cjk fonts-ipafont
  1. Sprawdź ustawienia czcionek przeglądarki
  • Firefox:
    1. Przejdź do about:preferences, następnie otwórz „Czcionki i kolory” → „Zaawansowane”
    2. Zmień „Czcionki proporcjonalne i monospace” na Noto Sans CJK JP
  • Chrome:
    1. Przejdź do chrome://settings/fonts
    2. Zmień „Standardową czcionkę” i „Czcionkę monospace” na Noto Sans CJK JP

2. Naprawa zniekształconego tekstu w LibreOffice

Rozwiązanie:

  1. Zainstaluj fonts-noto-cjk i fonts-ipafont
  2. Zmień ustawienia czcionek LibreOffice
  • Przejdź do „Narzędzia” → „Opcje” → „LibreOffice” → „Czcionki”
  • Zmień domyślną czcionkę na Noto Sans CJK JP

Naprawa zniekształconego tekstu w środowiskach CUI

1. Problemy ze zniekształconym tekstem w sesjach SSH

Rozwiązanie:

  1. Sprawdź ustawienia lokalizacji na serwerze
locale
  1. Jeśli brakuje ja_JP.UTF-8, uruchom:
sudo apt install -y language-pack-ja
sudo locale-gen ja_JP.UTF-8
sudo update-locale LANG=ja_JP.UTF-8

8. Najczęściej zadawane pytania (FAQ)

P1. Moja lokalizacja jest ustawiona poprawnie, ale zniekształcony tekst nadal występuje.

O: Nawet jeśli lokalizacja jest poprawna, zweryfikuj ustawienia:

locale

Jeśli nie jest wyświetlane LANG=ja_JP.UTF-8, zresetuj lokalizację:

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

P2. Tylko konkretne pliki mają zniekształcony tekst.

O: Plik może mieć inne kodowanie. Sprawdź za pomocą:

file -i sample.txt

Jeśli plik nie jest w UTF-8, przekonwertuj go:

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

Lub za pomocą nkf:

nkf -w --overwrite sample.txt

9. Wniosek

W tym artykule omówiono problemy ze zniekształconym tekstem w Ubuntu, ich przyczyny oraz sposoby naprawy. Główne przyczyny zniekształconego tekstu obejmują niepoprawne ustawienia lokalizacji, brakujące czcionki, niezgodności kodowania znaków oraz błędnie skonfigurowane ustawienia terminala/edytora.

Kluczowe wnioski

  • Ustaw poprawną lokalizację: Uruchom update-locale LANG=ja_JP.UTF-8
  • Zainstaluj japońskie czcionki: Użyj sudo apt install -y fonts-noto-cjk fonts-ipafont
  • Zweryfikuj kodowanie pliku: Użyj file -i i przekonwertuj za pomocą iconv
  • Skonfiguruj terminal i edytory: Upewnij się, że ustawienia kodowania UTF-8 są zastosowane

Postępując zgodnie z tymi krokami, możesz rozwiązać i zapobiec problemom ze zniekształconym tekstem w Ubuntu.