Kompletní průvodce opravouresleného textu v Ubuntu | Příčiny, řešení a změny nastavení

目次

1. Úvod

Při používání Ubuntu můžete narazit na zobrazení zkazměného textu v určitých situacích. To se může stát ve výstupu terminálu, při zobrazování japonských názvů souborů nebo při prohlížení japonských webových stránek, v závislosti na vašem prostředí. V mnoha případech se japonský text nemusí zobrazovat správně s výchozími nastaveními, což vyžaduje správnou konfiguraci. V tomto článku vysvětlíme příčiny zkazměného textu v Ubuntu a poskytneme konkrétní řešení pro jeho opravu. Tento průvodce je určen pro:

  • Začátečníky Ubuntu, kteří ještě nenastavili nastavení pro zobrazení japonštiny
  • Uživatele, kteří chtějí pochopit kořenové příčiny zkazměného textu a najít zásadní řešení
  • Uživatele, kteří zažívají zkazměný text v terminálu nebo GUI prostředí a chtějí vědět, jak to opravit

Začněme zkoumáním hlavních příčin zkazměného textu v Ubuntu.

年収訴求

2. Hlavní příčiny zkazměného textu

Nesprávná nastavení locale

Locales v Ubuntu definují systémový jazyk a nastavení formátování dat. Pokud nejsou správně nakonfigurovány, japonský text se nemusí zobrazovat správně, což vede k zkazměným znakům. Například, pokud spustíte příkaz locale a uvidíte „C“ nebo „POSIX“ ve výstupu, vaše nastavení locale mohou být nesprávná:

$ locale
LANG=C
LC_ALL=

Ideálně by pro japonské prostředí mělo být nastaveno LANG=ja_JP.UTF-8.

Chybějící nebo nedostatečné písma

Výchozí nastavení Ubuntu nemusí mít nainstalovaná japonská písma. V důsledku toho se japonský text nemusí vykreslovat správně a místo toho se zobrazí jako čtvercové boxy (□) nebo náhodné symboly. Problémy s písmy lze identifikovat v následujících případech:

  • Zkazměný text se objevuje v menu a tlačítkách GUI aplikací
  • Japonský text v textovém editoru se zobrazuje zkazměně

Nesoulad v kódování znaků

I když Ubuntu primárně používá UTF-8 jako standardní kódování, otevírání souborů zakódovaných v Shift_JIS nebo EUC-JP z externích zdrojů může způsobit zkazměný text. Například otevření souboru vytvořeného v prostředí Windows v Ubuntu může vést k následujícím výsledkům:

  • Nečitelné znaky při otevření v textovém editoru
  • Zkreslený text při použití příkazu cat v terminálu

Nesprávně nakonfigurovaná nastavení terminálu nebo editoru

I když je soubor zakódován v UTF-8, nesprávná nastavení terminálu nebo editoru mohou bránit správnému vykreslování textu.

  • Kódování terminálu je nastaveno na něco jiného než UTF-8
  • Textové editory jako Vim nebo VSCode nedetekují správné kódování automaticky
  • Japonské znaky se zobrazují jako „?“ nebo „◇“ při zobrazení s less nebo cat

3. Kontrola a oprava nastavení locale

Jak zkontrolovat nastavení locale

K zkontrolování aktuálních nastavení 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=

Pokud se zobrazí LANG=C, váš systém není správně nastaven pro japonštinu. Správně nakonfigurované japonské prostředí by mělo vypadat takto:

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

Instalace a konfigurace japonského locale

1. Kontrola a přidání japonského locale

K zkontrolování, zda je nainstalováno japonské locale, spusťte:

locale -a | grep ja_JP

Příklad výstupu:

ja_JP.eucJP
ja_JP.utf8

Pokud chybí ja_JP.utf8, nainstalujte japonské locale pomocí:

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

Poté vygenerujte locale a aktualizujte systémová nastavení:

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

2. Nastavení locale pro celý systém

K aplikaci změn pro celý systém spusťte:

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

Aby byly tyto změny 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

Pro změny platné pro celý systém upravte:

sudo nano /etc/default/locale

A přidejte nebo upravte následující:

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

Pro aplikaci nastavení se odhlaste a přihlaste znovu nebo restartujte systém.

4. Instalace a konfigurace písem

Proč jsou japonská písa nutná

Ve výchozím nastavení nemusí mít Ubuntu nainstalovaná japonská písa. To může vést k nesprávnému zobrazení japonského textu, který se objevuje jako čtvercové boxy (□) nebo nečitelné symboly. Problémy související s písmy lze pozorovat v následujících případech:

  • Menu a tlačítka v grafických aplikacích se zobrazují zdeformovaně
  • Japonský text v textovém editoru se zobrazuje nesprávně

Doporučená japonská písa

Zde jsou některá doporučená japonská písa pro Ubuntu:

Font Name

Funkce

Noto Sans CJK JP

Vysoce kvalitní japonský font poskytovaný Googlem (doporučený jako výchozí)

Takao Fonts

Předtím byl výchozí font pro Ubuntu (k dispozici v tenké a tučné verzi)

IPA Fonts

Kvalitní písma poskytuje Agentura pro podporu informačních technologií (IPA)

VL Gothic

Velmi čitelné a optimalizované pro použití v terminálu

Jak instalovat písa

1. Instalace Noto Sans CJK JP (doporučené výchozí písmo)

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

2. Instalace písem Takao

sudo apt install -y fonts-takao

3. Instalace písem IPA (Information-technology Promotion Agency)

sudo apt install -y fonts-ipafont

4. Instalace VL Gothic (optimalizováno pro terminál)

sudo apt install -y fonts-vlgothic

Po instalaci písem restartujte systém nebo obnovte mezipaměť písem pomocí:

fc-cache -fv

Jak konfigurovat písa

Nastavení písem v grafických aplikacích

  1. Otevřete aplikaci „Nastavení“
  2. Přejděte do sekce „Písa“
  3. Změňte „Standardní písmo“, „Písmo dokumentu“ a „Monospace písmo“ na požadované písmo
  4. Odhlaste se a přihlaste znovu pro aplikaci nastavení

Nastavení písem v terminálu

  1. Otevřete terminál
  2. Přejděte do „Předvolby“ → „Předvolby profilu“
  3. Zaškrtněte políčko „Použít vlastní písmo“
  4. Vyberte požadované písmo (např. Noto Sans Mono CJK JP)
  5. Uložte nastavení a restartujte terminál

Aplikace a ověření nastavení písem

Pro ověření, zda byla nastavení písem správně aplikována, zkuste následující:

  1. Zkontrolujte nainstalovaná písa pomocí příkazu fc-list
fc-list | grep "Noto"
  1. Otestujte zobrazení japonského textu v terminálu
echo "こんにちは、Ubuntuの文字化け対策"
  1. Zkontrolujte, zda se japonský text zobrazuje správně v grafických aplikacích (Firefox, LibreOffice atd.)

5. Kontrola a konverze kódování znaků

Co je kódování znaků?

Kódování znaků je systém, který přiřazuje digitální kódy znakům. Mezi běžně používaná kódování patří:

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

Protože Ubuntu primárně používá UTF-8, otevírání souborů v jiných kódováních (jako Shift_JIS) může způsobit zdeformovaný text.

Jak zkontrolovat kódování 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 kódování znaků

1. Konverze pomocí příkazu iconv

Konverze Shift_JIS na UTF-8:

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

Konverze EUC-JP na UTF-8:

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

2. Konverze pomocí příkazu nkf

Konverze Shift_JIS na UTF-8:

nkf -w sample.txt > sample_utf8.txt

Konverze EUC-JP na UTF-8:

nkf -w --overwrite sample.txt

Prevence zdeformovaného textu v terminálu a editorech

1. Použití příkazu less pro správné zobrazení

export LESSCHARSET=utf-8
less sample.txt

2. Specifikace kódování v vim

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

3. Změna kódování v gedit nebo VSCode

  • gedit (výchozí editor GNOME)
  1. Otevřete soubor pomocí gedit sample.txt
  2. Při ukládání změňte kódování na UTF-8
  • VSCode (Visual Studio Code)
  1. Klikněte na „Kódování“ v dolní části obrazovky
  2. Vyberte UTF-8

6. Kontrola nastavení terminálu a editoru

Kontrola a oprava nastavení terminálu

1. Kontrola nastavení kódování terminálu

Pro kontrolu aktuálních proměnných prostředí spusťte následující příkazy:

echo $LANG
echo $LC_ALL

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

ja_JP.UTF-8
ja_JP.UTF-8

Pokud je výstup C nebo POSIX, musíte změnit nastavení locale na ja_JP.UTF-8.

2. Konfigurace písem terminálu

GNOME Terminál (Výchozí terminál)

  1. Otevřete terminál
  2. Přejděte na „Předvolby“
  3. Otevřete „Předvolby profilu“ a přejděte na kartu „Text“
  4. Povolte „Použít vlastní písmo“ a vyberte jedno 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í znaků v textových editech

1. Konfigurace kódování Vim

Aby zkontrolovali svá aktuální nastavení, otevřete Vim a spusťte:

:set encoding?
:set fileencoding?

Očekávaný výstup:

encoding=utf-8
fileencoding=utf-8

Pokud není nastaveno na utf-8, přidejte následující do svého souboru ~/.vimrc, aby se UTF-8 stalo výchozím:

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

2. Konfigurace kódování Nano

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

set encoding "utf-8"

3. Konfigurace kódování VSCode

  1. Klikněte na „Kódování“ v pravém dolním rohu okna VSCode
  2. Vyberte UTF-8
  3. Pokud je potřeba, použijte „Uložit s kódováním“

Pro nastavení UTF-8 jako výchozího kódování přidejte následující do svého souboru settings.json:

"files.encoding": "utf8"

7. Řešení specifických případů

Oprava zkazměného textu v GUI aplikacích

1. Problémy s japonským zobrazením ve Firefoxu a Chromu

Řešení:

  1. Nainstalujte potřebná písma
sudo apt install -y fonts-noto-cjk fonts-ipafont
  1. Zkontrolujte nastavení písem prohlížeče
  • Firefox:
    1. Přejděte na about:preferences, poté otevřete „Písma & Barvy“ → „Pokročilé“
    2. Změňte „Proporsní“ a „Monospace Písma“ na Noto Sans CJK JP
  • Chrome:
    1. Přejděte na chrome://settings/fonts
    2. Změňte „Standardní písmo“ a „Monospace písmo“ na Noto Sans CJK JP

2. Oprava zkazměného textu v LibreOffice

Řešení:

  1. Nainstalujte fonts-noto-cjk a fonts-ipafont
  2. Změňte nastavení písem LibreOffice
  • Přejděte na „Nástroje“ → „Možnosti“ → „LibreOffice“ → „Písma“
  • Změňte výchozí písmo na Noto Sans CJK JP

Oprava zkazměného textu v CUI prostředích

1. Problémy se zkazměným textem v SSH relacích

Řešení:

  1. Zkontrolujte nastavení locale na serveru
locale
  1. Pokud chybí ja_JP.UTF-8, spusťte:
sudo apt install -y language-pack-ja
sudo locale-gen ja_JP.UTF-8
sudo update-locale LANG=ja_JP.UTF-8

8. Často kladené otázky (FAQ)

Otázka 1. Moje locale je nastaveno správně, ale zkazměný text přetrvává.

Odpověď: I když je vaše locale správné, ověřte nastavení:

locale

Pokud se nezobrazí LANG=ja_JP.UTF-8, resetujte locale:

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

Otázka 2. Pouze specifické soubory mají zkazměný text.

Odpověď: Soubor může mít jiné kódování. Zkontrolujte pomocí:

file -i sample.txt

Pokud soubor není v UTF-8, převeďte ho:

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

Nebo pomocí nkf:

nkf -w --overwrite sample.txt

9. Závěr

V tomto článku jsme se zabývali problémy se zkazměným textem v Ubuntu, jejich příčinami a jak je opravit. Primární příčiny zkazměného textu zahrnují nesprávná nastavení locale, chybějící písma, nesoulad v kódování znaků a špatně nakonfigurovaná nastavení terminálu/editors.

Klíčové body

  • Nastavte správné locale : Spusťte update-locale LANG=ja_JP.UTF-8
  • Nainstalujte japonská písma : Použijte sudo apt install -y fonts-noto-cjk fonts-ipafont
  • Ověřte kódování souboru : Použijte file -i a převeďte pomocí iconv
  • Konfigurujte terminál a editory : Zajistěte, aby byla nastavení kódování UTF-8 aplikována

Postupováním těchto kroků můžete vyřešit a zabránit problémům se zkazměným textem v Ubuntu.