Jak opravit rozbitý text v Ubuntu: Kompletní průvodce nastavením locale, fontů a kódování

目次

1. Úvod

Při používání Ubuntu se můžete občas setkat s nečitelnými (rozmazanými) znaky. Tyto problémy se mohou objevit v různých situacích, například v terminálovém výstupu, při zobrazování japonských názvů souborů nebo při prohlížení japonských webových stránek v prohlížeči. V mnoha případech se japonský text nezobrazí správně s výchozím nastavením, takže je nutné provést správnou konfiguraci.

Tento článek vysvětluje příčiny nečitelného textu v Ubuntu a poskytuje konkrétní řešení, jak je odstranit. Tento průvodce je určen pro následující uživatele:

  • Začátečníky, kteří používají Ubuntu bez nastavení podpory japonského jazyka
  • Uživatelé, kteří chtějí pochopit kořenovou příčinu nečitelného textu a hledají základní řešení
  • Uživatelé, kteří mají problémy s nečitelným textem v terminálu nebo v grafickém prostředí a chtějí vědět, jak je opravit

Začněme přehledem hlavních příčin nečitelného textu v Ubuntu.

2. Hlavní příčiny nečitelného textu

Nesprávné nastavení locale

Locale v Ubuntu definuje systémová nastavení související s jazykem, formátem data a dalšími regionálními chováními. Když jsou tato nastavení nesprávná, japonský text se nemusí zobrazovat správně, což vede k nečitelným znakům.

Například pokud příkaz locale vrátí hodnoty jako „C“ nebo „POSIX“, systémové locale není správně nakonfigurováno:

$ locale
LANG=C
LC_ALL=

Ideálně by japonské prostředí mělo ukazovat nastavení jako LANG=ja_JP.UTF-8.

Chybějící nebo nenastavené fonty

V některých výchozích instalacích Ubuntu nemusí být k dispozici japonské fonty, což způsobí, že se japonský text zobrazí jako prázdné čtverečky (□) nebo nečitelné symboly.

Tento problém se typicky vyskytuje v následujících situacích:

  • Položky menu a tlačítka v GUI aplikacích jsou poškozené
  • Otevření japonského textu v editoru zobrazí nečitelné znaky

Nesoulad kódování znaků

Ubuntu primárně používá kódování UTF-8. Když otevíráte soubory kódované v Shift_JIS nebo EUC-JP — což je běžné u starších Windows nebo UNIX systémů — může dojít k poškození textu.

Typické problémy zahrnují:

  • Textové editory zobrazují podivné symboly při otevření japonských souborů
  • Výstup příkazu cat v terminálu vypadá poškozeně

Nesprávná konfigurace terminálu nebo editoru

I když jsou soubory správně kódovány v UTF‑8, nesprávně nastavený terminál nebo editor může stále způsobovat problémy se zobrazováním.

  • Kódování terminálu je nastaveno na něco jiného než UTF-8
  • Editory jako Vim nebo VSCode nedokážou automaticky detekovat kódování znaků
  • Japonské znaky se zobrazují jako „?“ nebo „◇“ při prohlížení pomocí less nebo cat

3. Kontrola a oprava nastavení locale

Jak zkontrolovat nastavení locale

Pro kontrolu aktuální konfigurace locale spusťte následující příkaz:

locale

Příklad výstupu:

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=

V tomto případě LANG=C naznačuje, že podpora japonštiny není povolena. Pro správnou japonskou konfiguraci byste měli vidět hodnoty jako:

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

Instalace a nastavení japonského locale

1. Zkontrolujte a přidejte japonské locale

Pro ověření, zda je japonské locale ve vašem systému k dispozici, spusťte tento příkaz:

locale -a | grep ja_JP

Příklad výstupu:

ja_JP.eucJP
ja_JP.utf8

Pokud ja_JP.utf8 není v seznamu, musíte nainstalovat balíček japonského locale.

Nainstalujte jej pomocí následujících příkazů:

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

Poté locale povolte:

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

2. Použijte locale systémově

Pro aplikaci změny locale v celém systému spusťte následující příkazy:

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

Aby změny byly trvalé, přidejte je do ~/.bashrc nebo ~/.profile:

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

Pokud chcete nastavení použít pro všechny uživatele, upravte místo toho následující soubor:

sudo nano /etc/default/locale

Přidejte nebo aktualizujte následující položky:

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

Pro použití nastavení se odhlaste a znovu přihlaste, nebo restartujte systém.

4. Instalace a konfigurace japonských fontů

Proč jsou japonské fonty potřebné

Ve výchozím prostředí Ubuntu nemusí být japonské fonty nainstalovány. Bez nich se japonský text zobrazuje jako prázdné čtverečky nebo nečitelné symboly.

Chybějící fonty můžete ověřit v následujících situacích:

  • Popisky v menu a tlačítka GUI zobrazují poškozené znaky
  • Japonský text se po otevření v textovém editoru zobrazí poškozený

Doporučené japonské fonty

Následující japonské fonty jsou k dispozici v Ubuntu:

Font NameDescription
Noto Sans CJK JPA high-quality Japanese font provided by Google (recommended as default)
Takao FontsThe former default fonts in Ubuntu, available in regular and bold styles
IPA FontsHigh-quality fonts provided by the Information-technology Promotion Agency (IPA)
VL Gothic (VLゴシック)Highly readable, ideal for terminal environments

Jak nainstalovat japonské fonty

1. Noto Sans CJK JP (Recommended Default)

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

2. Takao Fonts

sudo apt install -y fonts-takao

3. IPA Fonts

sudo apt install -y fonts-ipafont

4. VL Gothic (pro terminálové použití)

sudo apt install -y fonts-vlgothic

Po dokončení instalace restartujte systém nebo obnovte mezipaměť fontů:

fc-cache -fv

Jak nakonfigurovat fonty

Konfigurace fontů v GUI aplikacích

  1. Otevřete aplikaci „Nastavení“
  2. Přejděte do sekce „Fonty“
  3. Změňte „Standardní font“, „Font dokumentu“ a „Monospace font“ na vámi preferované fonty
  4. Odhlaste se a znovu přihlaste, aby se změny projevily

Konfigurace fontů v terminálu

  1. Otevřete terminál
  2. Vyberte „Předvolby“ v nabídce
  3. Otevřete nastavení „Profil“ a povolte „Použít vlastní font“
  4. Vyberte vámi preferovaný font (např. Noto Sans Mono CJK JP )
  5. Uložte nastavení a restartujte terminál

Ověření konfigurace fontů

Pro potvrzení, že fonty byly aplikovány správně, vyzkoušejte následující kroky:

  1. Zkontrolujte nainstalované fonty pomocí fc-list
    fc-list | grep "Noto"
    
  1. Ověřte zobrazení japonštiny v terminálu
    echo "こんにちは、Ubuntuの文字化け対策"
    
  1. Potvrďte vykreslování japonského textu v GUI aplikacích, jako jsou Firefox nebo LibreOffice

5. Kontrola a konverze znakové sady

Co je znaková sada?

Znaková sada určuje, jak jsou znaky digitálně reprezentovány. Běžné sady zahrnují:

EncodingCharacteristicsMain Usage
UTF-8Multi-language support; standard in LinuxUbuntu and web development
Shift_JISJapanese-focused; standard in Windows environmentsWindows apps and legacy systems
EUC-JPPreviously used in UNIX-based systemsOlder Linux distributions
ISO-2022-JPUsed in some mail systemsEmail communication

Protože Ubuntu používá UTF-8 jako výchozí znakovou sadu, otevírání souborů kódovaných v jiných formátech může vést k poškozenému textu.

Jak zkontrolovat znakovou sadu souboru

1. Použití příkazu file

file -i sample.txt

Příklad výstupu:

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

2. Použití příkazu nkf

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

Příklad výstupu:

Shift_JIS (CRLF)

Jak konvertovat znakovou sadu

1. Použití příkazu iconv

Příklad: konverze Shift_JIS na UTF-8

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

Příklad: konverze EUC-JP na UTF-8

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

2. Použití příkazu nkf

Příklad: konverze Shift_JIS na UTF-8

nkf -w sample.txt > sample_utf8.txt

Příklad: konverze EUC-JP na UTF-8

nkf -w --overwrite sample.txt

Prevence poškozeného textu v terminálech a editorech

1. Zobrazte správnou znakovou sadu pomocí less

export LESSCHARSET=utf-8
less sample.txt

2. Otevřete soubory s určenou znakovou sadou ve vim

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

3. Upravit znakovou sadu v gedit nebo VSCode

  • gedit (výchozí editor GNOME)
  1. Otevřete soubor pomocí gedit sample.txt
  2. Při ukládání vyberte UTF-8 v rozbalovacím seznamu „Kódování“
  • VSCode (Visual Studio Code)
  1. Klikněte na indikátor “Encoding” ve spodní části okna
  2. Vyberte UTF-8 pro převod souboru

6. Kontrola nastavení terminálu a editoru

Ověření a úprava nastavení terminálu

1. Zkontrolujte kódování terminálu

Pro potvrzení nastavení locale spusťte níže uvedené příkazy:

echo $LANG
echo $LC_ALL

Příklad výstupu (správná konfigurace)

ja_JP.UTF-8
ja_JP.UTF-8

Pokud výstup ukazuje C nebo POSIX, změňte locale na ja_JP.UTF-8.

2. Nastavení fontů terminálu

GNOME Terminal (výchozí terminál Ubuntu)

  1. Otevřete terminál
  2. Vyberte “Preferences”
  3. Otevřete “Profile” a přejděte na kartu “Text”
  4. Povolte “Use custom font” a vyberte jeden z následujících:
  • Noto Sans Mono CJK JP
  • VL Gothic
  • Takao Gothic
  1. Uložte nastavení a restartujte terminál

Nastavení kódování editoru

1. Nastavení kódování ve Vimu

Otevřete Vim a spusťte následující příkazy pro kontrolu aktuálního kódování:

:set encoding?
:set fileencoding?

Příklad výstupu:

encoding=utf-8
fileencoding=utf-8

Pokud se nastavení liší od utf-8, aktualizujte ~/.vimrc pomocí:

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

2. Nastavení kódování v Nano

Pro změnu výchozího kódování přidejte následující do ~/.nanorc:

set encoding "utf-8"

3. Nastavení kódování ve VSCode

  1. Klikněte na indikátor “Encoding” v pravém dolním rohu
  2. Vyberte “Reopen with Encoding” a zvolte UTF-8
  3. V případě potřeby vyberte “Save with Encoding”

Pro nastavení UTF-8 jako výchozího přidejte následující do settings.json:

"files.encoding": "utf8"

7. Řešení pro konkrétní případy

Zamezení poškozenému textu v GUI aplikacích

1. Japonské znaky se zobrazují nesprávně ve Firefoxu nebo Chrome

Řešení:

  1. Nainstalujte požadované japonské fonty
    sudo apt install -y fonts-noto-cjk fonts-ipafont
    
  1. Zkontrolujte a aktualizujte nastavení fontů prohlížeče
  • Firefox: wp:list {„ordered“:true} /wp:list

    1. Navštivte about:preferences
    2. Otevřete “Fonts & Colors” → “Advanced”
    3. Nastavte oba fonty “Proportional” a “Monospace” na Noto Sans CJK JP
      Google Chrome:* wp:list {„ordered“:true} /wp:list

    4. Otevřete chrome://settings/fonts

    5. Změňte “Standard font” a “Fixed-width font” na Noto Sans CJK JP

2. Poškozený text v LibreOffice

Řešení:

  1. Nainstalujte japonské fonty, např. fonts-noto-cjk nebo fonts-ipafont
  2. Změňte nastavení fontů v LibreOffice
  • Přejděte na “Tools” → “Options” → “LibreOffice” → “Fonts”
  • Nastavte výchozí font na Noto Sans CJK JP

Zamezení poškozenému textu v CUI prostředích

1. SSH relace zobrazuje poškozené znaky

Řešení:

  1. Zkontrolujte locale na vzdáleném serveru
    locale
    
  1. Pokud není nastaveno na ja_JP.UTF-8, spusťte následující příkazy:
    sudo apt install -y language-pack-ja
    sudo locale-gen ja_JP.UTF-8
    sudo update-locale LANG=ja_JP.UTF-8
    

Zamezení poškozenému textu v konkrétních aplikacích

1. WSL (Windows Subsystem for Linux) zobrazuje poškozený japonský text

Řešení:

  1. Nakonfigurujte WSL tak, aby používal ja_JP.UTF-8
    echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc
    echo 'export LC_ALL=ja_JP.UTF-8' >> ~/.bashrc
    source ~/.bashrc
    
  1. Nastavte font Windows Terminal na Noto Sans Mono CJK JP

2. Poškozený japonský text uvnitř Docker kontejnerů

Řešení:

  1. Vstupte do kontejneru a zkontrolujte locale
    docker exec -it container_name bash
    locale
    
  1. Přidejte japonské locale, pokud chybí
    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 (Často kladené otázky)

Q1. Nastavil jsem locale správně, ale poškozený text se stále objevuje.

A: Znovu ověřte nastavení locale:

locale

Pokud není nastaveno LANG=ja_JP.UTF-8, přenastavte pomocí:

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

Q2. Pouze některé soubory zobrazují poškozený text.

O: Různé soubory mohou mít různá kódování znaků. Zkontrolujte kódování:

file -i sample.txt

Pokud soubor není v UTF-8, převedete jej:

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

Nebo pomocí nkf:

nkf -w --overwrite sample.txt

Q3. Nemohu zadávat japonské znaky v terminálu.

O: Ujistěte se, že je nainstalována japonská vstupní metoda (Fcitx nebo IBus).

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

Q4. Japonský text je v WSL poškozený.

O: Nastavte locale ve WSL:

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

Q5. Japonský text je poškozený uvnitř Docker kontejneru.

O: Pokud je locale nastaveno na C.UTF-8, japonský text se nezobrazí správně.

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

Q6. GUI nabídky a dialogová okna zobrazují poškozený japonský text.

O: Nainstalujte fonty a změňte nastavení fontu:

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

9. Shrnutí

Tento článek poskytl podrobný výklad příčin a řešení problémů s poškozeným textem v Ubuntu. Poškozené znaky se obvykle vyskytují kvůli nesprávně nastavenému locale, chybějícím fontům, nesouladu kódování znaků nebo nesprávné konfiguraci terminálu/editoru. Nicméně s vhodnými úpravami lze tyto problémy účinně vyřešit.

1. Hlavní příčiny poškozeného textu

  • Nesprávná konfigurace locale : Pokud je systémové locale nastaveno na C nebo POSIX, japonský text se nemůže zobrazit správně
  • Fonty nejsou nainstalovány : Bez japonských fontů nemohou GUI aplikace a terminály správně vykreslovat japonské znaky
  • Nesoulad kódování : Otevírání souborů uložených v různých kódováních (např. Shift_JIS) může způsobit poškození
  • Nesprávné nastavení terminálu/editoru : Pokud není kódování nastaveno na UTF-8, japonský text se nemusí zobrazit správně

2. Řešení pro prevenci poškozeného textu

ItemSolution
Locale configurationCheck with locale and run update-locale LANG=ja_JP.UTF-8
Font installationsudo apt install -y fonts-noto-cjk fonts-ipafont
Check file encodingUse file -i or nkf --guess
Convert encodingiconv -f SHIFT_JIS -t UTF-8 filename -o newfile
Terminal configurationSet LESSCHARSET=utf-8 and change fonts to Noto Sans Mono CJK JP
Fix GUI garbled textSet fonts to Noto Sans CJK JP and use gnome-tweaks if needed
Fix WSL garbled textSet ja_JP.UTF-8 and configure fonts
Fix Docker garbled textRun locale-gen ja_JP.UTF-8 and configure locale in Dockerfile

3. Další doporučení

  • Udržujte systém aktualizovaný : Zastaralé balíčky mohou způsobovat problémy v japonském prostředí
    sudo apt update && sudo apt upgrade -y
    
  • Trvalá nastavení : Přidejte nastavení locale do ~/.bashrc nebo ~/.profile, aby se automaticky aplikovala při přihlášení
  • Zálohujte konfigurační soubory : Před úpravou souborů jako /etc/default/locale vytvořte zálohu

Závěr

Problém poškozeného textu v Ubuntu lze vyřešit správnou konfigurací čtyř klíčových komponent: locale, fonty, kódování znaků a nastavení terminálu/editoru. Dodržením metod uvedených v tomto průvodci můžete eliminovat téměř všechny problémy s poškozeným textem v různých Ubuntu prostředích, ať už v terminálových seancích, GUI aplikacích, WSL nebo Docker kontejnerech.

年収訴求