Cách Sửa Văn Bản Bị Lỗi trên Ubuntu: Hướng Dẫn Toàn Diện về Cài Đặt Địa Phương, Phông Chữ và Mã Hóa

目次

1. Giới thiệu

Khi sử dụng Ubuntu, bạn đôi khi có thể gặp phải các ký tự bị rối. Những vấn đề này có thể xuất hiện trong nhiều tình huống, chẳng hạn như đầu ra terminal, hiển thị tên tệp tiếng Nhật, hoặc xem các trang web tiếng Nhật trong trình duyệt. Trong nhiều trường hợp, văn bản tiếng Nhật có thể không hiển thị đúng với cấu hình mặc định, vì vậy việc thiết lập đúng là rất cần thiết.

Bài viết này giải thích các nguyên nhân gây ra văn bản bị rối trên Ubuntu và cung cấp các giải pháp cụ thể để khắc phục. Hướng dẫn này dành cho các đối tượng sau:

  • Người mới bắt đầu đang sử dụng Ubuntu mà chưa cấu hình hỗ trợ ngôn ngữ Nhật
  • Người dùng muốn hiểu nguyên nhân gốc rễ của các ký tự bị rối và tìm kiếm các giải pháp cơ bản
  • Người dùng gặp văn bản bị rối trong môi trường terminal hoặc GUI và muốn biết cách khắc phục

Hãy bắt đầu bằng cách xem xét các nguyên nhân chính gây ra văn bản bị rối trên Ubuntu.

2. Nguyên nhân chính gây ra văn bản bị rối

Cài đặt Locale không chính xác

Locale trên Ubuntu định nghĩa các cài đặt hệ thống liên quan đến ngôn ngữ, định dạng ngày tháng và các hành vi khu vực khác. Khi các cài đặt này không đúng, văn bản tiếng Nhật có thể không hiển thị đúng, dẫn đến các ký tự bị rối.

Ví dụ, nếu chạy lệnh locale hiển thị các giá trị như “C” hoặc “POSIX,” thì locale hệ thống chưa được cấu hình đúng:

$ locale
LANG=C
LC_ALL=

Trong môi trường tiếng Nhật, nên thấy các cài đặt như LANG=ja_JP.UTF-8.

Thiếu hoặc chưa cấu hình phông chữ

Trong một số bản cài đặt Ubuntu mặc định, phông chữ tiếng Nhật có thể không có sẵn, gây ra việc văn bản tiếng Nhật hiển thị dưới dạng các ô trống (□) hoặc ký tự không đọc được.

Vấn đề này thường xảy ra trong các trường hợp sau:

  • Các mục menu và nút trong ứng dụng GUI xuất hiện bị hỏng
  • Mở văn bản tiếng Nhật trong trình soạn thảo hiển thị các ký tự bị rối

Mã hoá ký tự không khớp

Ubuntu chủ yếu sử dụng mã hoá UTF-8. Khi mở các tệp được mã hoá bằng Shift_JIS hoặc EUC-JP—thường gặp trên các hệ thống Windows hoặc UNIX cũ—có thể xảy ra hiện tượng văn bản bị hỏng.

Các vấn đề thường gặp bao gồm:

  • Trình soạn thảo hiển thị các ký hiệu lạ khi mở tệp tiếng Nhật
  • Kết quả của lệnh cat xuất hiện bị lỗi trong terminal

Cấu hình sai terminal hoặc trình soạn thảo

Ngay cả khi các tệp đã được mã hoá đúng bằng UTF-8, cấu hình sai terminal hoặc trình soạn thảo vẫn có thể gây ra vấn đề hiển thị.

  • Mã hoá của terminal được đặt thành một giá trị khác UTF-8
  • Các trình soạn thảo như Vim hoặc VSCode không tự động phát hiện mã hoá ký tự
  • Các ký tự tiếng Nhật xuất hiện dưới dạng “?” hoặc “◇” khi xem bằng less hoặc cat

3. Kiểm tra và sửa cài đặt Locale

Cách kiểm tra cài đặt Locale

Để kiểm tra cấu hình locale hiện tại, chạy lệnh dưới đây:

locale

Ví dụ đầu ra:

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=

Trong trường hợp này, LANG=C cho thấy hỗ trợ tiếng Nhật chưa được bật. Đối với cấu hình tiếng Nhật đúng, bạn nên thấy các giá trị như:

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

Cài đặt và thiết lập Locale tiếng Nhật

1. Kiểm tra và thêm Locale tiếng Nhật

Để xác nhận xem Locale tiếng Nhật có sẵn trên hệ thống của bạn hay không, chạy lệnh sau:

locale -a | grep ja_JP

Ví dụ đầu ra:

ja_JP.eucJP
ja_JP.utf8

Nếu ja_JP.utf8 không có trong danh sách, bạn phải cài đặt gói locale tiếng Nhật.

Cài đặt nó bằng các lệnh sau:

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

Sau đó kích hoạt locale:

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

2. Áp dụng Locale trên toàn hệ thống

Để áp dụng thay đổi locale trên toàn hệ thống, chạy các lệnh sau:

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

Để các thay đổi này được duy trì, thêm chúng vào ~/.bashrc hoặc ~/.profile:

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

Nếu bạn muốn áp dụng các cài đặt cho tất cả người dùng, hãy chỉnh sửa tệp sau đây thay vì:

sudo nano /etc/default/locale

Thêm hoặc cập nhật các mục sau:

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

Để áp dụng các cài đặt, hãy đăng xuất và đăng nhập lại, hoặc khởi động lại hệ thống.

4. Cài Đặt và Cấu Hình Phông Chữ Nhật Bản

Tại Sao Cần Phông Chữ Nhật Bản

Trong môi trường Ubuntu mặc định, có thể chưa được cài đặt phông chữ Nhật Bản. Nếu không có chúng, văn bản tiếng Nhật sẽ hiển thị dưới dạng các ô trống hoặc ký tự không đọc được.

Bạn có thể xác nhận việc thiếu phông chữ trong các trường hợp sau:

  • Nhãn menu và nút giao diện người dùng hiển thị ký tự rối
  • Văn bản tiếng Nhật bị hỏng khi mở trong trình soạn thảo văn bản

Các Phông Chữ Nhật Bản Được Đề Xuất

Các phông chữ Nhật Bản sau đây có sẵn để sử dụng trên 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

Cách Cài Đặt Phông Chữ Nhật Bản

1. Noto Sans CJK JP (Mặc Định Được Đề Xuất)

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

2. Phông Chữ Takao

sudo apt install -y fonts-takao

3. Phông Chữ IPA

sudo apt install -y fonts-ipafont

4. VL Gothic (dành cho Terminal)

sudo apt install -y fonts-vlgothic

Sau khi cài đặt hoàn tất, khởi động lại hệ thống hoặc làm mới bộ nhớ đệm phông chữ:

fc-cache -fv

Cách Cấu Hình Phông Chữ

Cấu Hình Phông Chữ trong Ứng Dụng GUI

  1. Mở ứng dụng “Settings”
  2. Điều hướng tới mục “Fonts”
  3. Thay đổi “Standard Font”, “Document Font” và “Monospace Font” sang phông chữ bạn muốn
  4. Đăng xuất và đăng nhập lại để áp dụng các thay đổi

Cấu Hình Phông Chữ trong Terminal

  1. Mở terminal
  2. Chọn “Preferences” từ menu
  3. Mở cài đặt “Profile” và bật “Use custom font”
  4. Chọn phông chữ bạn muốn (ví dụ: Noto Sans Mono CJK JP)
  5. Lưu cài đặt và khởi động lại terminal

Xác Minh Cấu Hình Phông Chữ

Để xác nhận rằng phông chữ đã được áp dụng đúng, thực hiện các bước sau:

  1. Kiểm tra các phông chữ đã cài đặt bằng lệnh fc-list
    fc-list | grep "Noto"
    
  1. Kiểm tra hiển thị tiếng Nhật trong terminal
    echo "こんにちは、Ubuntuの文字化け対策"
    
  1. Xác nhận việc hiển thị văn bản tiếng Nhật trong các ứng dụng GUI như Firefox hoặc LibreOffice

5. Kiểm Tra và Chuyển Đổi Mã Hóa Ký Tự

Mã Hóa Ký Tự Là Gì?

Mã hóa ký tự xác định cách các ký tự được biểu diễn dưới dạng số trong máy tính. Các mã hóa phổ biến bao gồm:

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

Vì Ubuntu sử dụng UTF-8 làm mã hóa mặc định, việc mở các tệp được mã hóa bằng định dạng khác có thể gây ra văn bản bị rối.

Cách Kiểm Tra Mã Hóa Ký Tự của Một Tệp

1. Sử Dụng Lệnh file

file -i sample.txt

Kết quả mẫu:

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

2. Sử Dụng Lệnh nkf

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

Kết quả mẫu:

Shift_JIS (CRLF)

Cách Chuyển Đổi Mã Hóa Ký Tự

1. Sử Dụng Lệnh iconv

Ví dụ: Chuyển đổi Shift_JIS sang UTF-8

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

Ví dụ: Chuyển đổi EUC-JP sang UTF-8

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

2. Sử Dụng Lệnh nkf

Ví dụ: Chuyển đổi Shift_JIS sang UTF-8

nkf -w sample.txt > sample_utf8.txt

Ví dụ: Chuyển đổi EUC-JP sang UTF-8

nkf -w --overwrite sample.txt

Ngăn Ngừa Văn Bản Bị Rối trong Terminal và Trình Soạn Thảo

1. Hiển Thị Mã Hóa Đúng với less

export LESSCHARSET=utf-8
less sample.txt

2. Mở Tệp với Mã Hóa Được Chỉ Định trong vim

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

3. Thay Đổi Mã Hóa Ký Tự trong gedit hoặc VSCode

  • gedit (trình soạn thảo mặc định của GNOME)
  1. Mở tệp bằng lệnh gedit sample.txt
  2. Khi lưu, chọn UTF-8 trong danh sách thả xuống “Encoding”
  • VSCode (Visual Studio Code)
  1. Nhấp vào chỉ báo “Encoding” ở phía dưới của cửa sổ
  2. Chọn UTF-8 để chuyển đổi tệp

6. Kiểm tra Cài đặt Terminal và Trình chỉnh sửa

Xác minh và Điều chỉnh Cài đặt Terminal

1. Kiểm tra Mã hoá Terminal

Để xác nhận cài đặt locale của bạn, chạy các lệnh dưới đây:

echo $LANG
echo $LC_ALL

Ví dụ đầu ra (cấu hình đúng)

ja_JP.UTF-8
ja_JP.UTF-8

Nếu đầu ra hiển thị C hoặc POSIX, hãy thay đổi locale thành ja_JP.UTF-8.

2. Cấu hình Phông chữ Terminal

GNOME Terminal (Terminal mặc định của Ubuntu)

  1. Mở terminal
  2. Chọn “Preferences”
  3. Mở “Profile” và chuyển đến tab “Text”
  4. Bật “Use custom font” và chọn một trong các tùy chọn sau:
  • Noto Sans Mono CJK JP
  • VL Gothic
  • Takao Gothic
  1. Lưu cài đặt của bạn và khởi động lại terminal

Cấu hình Mã hoá Trình chỉnh sửa

1. Cài đặt Mã hoá Vim

Mở Vim và chạy các lệnh sau để kiểm tra mã hoá hiện tại:

:set encoding?
:set fileencoding?

Ví dụ đầu ra:

encoding=utf-8
fileencoding=utf-8

Nếu cài đặt khác với utf-8, cập nhật ~/.vimrc với:

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

2. Cài đặt Mã hoá Nano

Để thay đổi mã hoá mặc định, thêm các dòng sau vào ~/.nanorc:

set encoding "utf-8"

3. Cài đặt Mã hoá VSCode

  1. Nhấp vào chỉ báo “Encoding” ở góc dưới bên phải
  2. Chọn “Reopen with Encoding” và chọn UTF-8
  3. Nếu cần, chọn “Save with Encoding”

Để đặt UTF-8 làm mặc định, thêm các dòng sau vào settings.json:

"files.encoding": "utf8"

7. Giải pháp cho Các trường hợp Cụ thể

Ngăn chặn Văn bản bị rối trong Ứng dụng GUI

1. Ký tự Nhật Bản hiển thị không đúng trong Firefox hoặc Chrome

Giải pháp:

  1. Cài đặt các phông chữ Nhật Bản cần thiết
    sudo apt install -y fonts-noto-cjk fonts-ipafont
    
  1. Kiểm tra và cập nhật cài đặt phông chữ của trình duyệt
  • Firefox: wp:list {“ordered”:true} /wp:list

    1. Truy cập about:preferences
    2. Mở “Fonts & Colors” → “Advanced”
    3. Đặt cả phông chữ “Proportional” và “Monospace” thành Noto Sans CJK JP * Google Chrome: wp:list {“ordered”:true} /wp:list

    4. Truy cập chrome://settings/fonts

    5. Thay đổi “Standard font” và “Fixed-width font” thành Noto Sans CJK JP

2. Văn bản bị rối trong LibreOffice

Giải pháp:

  1. Cài đặt các phông chữ Nhật Bản như fonts-noto-cjk hoặc fonts-ipafont
  2. Thay đổi cài đặt phông chữ LibreOffice
  • Vào “Tools” → “Options” → “LibreOffice” → “Fonts”
  • Đặt phông chữ mặc định thành Noto Sans CJK JP

Ngăn chặn Văn bản bị rối trong Môi trường CUI

1. Phiên SSH hiển thị ký tự bị rối

Giải pháp:

  1. Kiểm tra locale trên máy chủ từ xa
    locale
    
  1. Nếu nó không được đặt thành ja_JP.UTF-8, chạy các lệnh sau:
    sudo apt install -y language-pack-ja
    sudo locale-gen ja_JP.UTF-8
    sudo update-locale LANG=ja_JP.UTF-8
    

Ngăn chặn Văn bản bị rối trong Các Ứng dụng Cụ thể

1. WSL (Windows Subsystem for Linux) hiển thị Văn bản Nhật Bản bị rối

Giải pháp:

  1. Cấu hình WSL để sử dụng ja_JP.UTF-8
    echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc
    echo 'export LC_ALL=ja_JP.UTF-8' >> ~/.bashrc
    source ~/.bashrc
    
  1. Đặt phông chữ Windows Terminal thành Noto Sans Mono CJK JP

2. Văn bản Nhật Bản bị rối trong Docker Containers

Giải pháp:

  1. Vào container và kiểm tra locale
    docker exec -it container_name bash
    locale
    
  1. Thêm locale Nhật Bản nếu thiếu
    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. Câu hỏi thường gặp (FAQ)

Q1. Tôi đã cấu hình locale đúng, nhưng văn bản vẫn bị rối.

A: Xác minh lại cài đặt locale:

locale

Nếu LANG=ja_JP.UTF-8 chưa được đặt, hãy cấu hình lại bằng:

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

Q2. Chỉ một số tệp nhất định hiển thị văn bản bị rối.

A: Các tệp khác nhau có thể có các bộ mã ký tự khác nhau. Kiểm tra bộ mã:

file -i sample.txt

Nếu tệp không phải UTF-8, chuyển đổi nó:

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

Hoặc, sử dụng nkf:

nkf -w --overwrite sample.txt

Q3. Tôi không thể nhập ký tự Nhật trong terminal.

A: Đảm bảo rằng một phương pháp nhập tiếng Nhật (Fcitx hoặc IBus) đã được cài đặt.

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

Q4. Văn bản tiếng Nhật bị rối trong WSL.

A: Đặt locale trong WSL:

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

Q5. Văn bản tiếng Nhật bị rối bên trong container Docker.

A: Nếu locale là C.UTF-8, văn bản tiếng Nhật sẽ không hiển thị đúng.

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. Các menu và hộp thoại GUI hiển thị văn bản tiếng Nhật bị hỏng.

A: Cài đặt phông chữ và thay đổi cài đặt phông chữ:

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

9. Tóm tắt

Bài viết này cung cấp giải thích chi tiết về nguyên nhân và giải pháp cho vấn đề văn bản bị rối trong Ubuntu. Các ký tự bị rối thường xảy ra do cài đặt locale không đúng, thiếu phông chữ, không khớp bộ mã ký tự, hoặc cấu hình terminal/editor sai. Tuy nhiên, với các điều chỉnh phù hợp, những vấn đề này có thể được giải quyết hiệu quả.

1. Nguyên nhân chính gây ra văn bản bị rối

  • Cấu hình locale không đúng : Nếu locale hệ thống được đặt là C hoặc POSIX, văn bản tiếng Nhật không thể hiển thị đúng
  • Phông chữ chưa được cài đặt : Nếu không có phông chữ tiếng Nhật, các ứng dụng GUI và terminal không thể hiển thị ký tự tiếng Nhật đúng cách
  • Không khớp bộ mã : Mở các tệp được lưu ở các bộ mã khác nhau (ví dụ, Shift_JIS) có thể gây ra lỗi
  • Cài đặt terminal/editor không đúng : Nếu bộ mã không được đặt là UTF-8, văn bản tiếng Nhật có thể không hiển thị đúng

2. Giải pháp để ngăn ngừa văn bản bị rối

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. Khuyến nghị bổ sung

  • Giữ hệ thống của bạn luôn cập nhật : Các gói phần mềm lỗi thời có thể gây ra vấn đề trong môi trường tiếng Nhật
    sudo apt update && sudo apt upgrade -y
    
  • Giữ lại cài đặt : Thêm cài đặt locale vào ~/.bashrc hoặc ~/.profile để tự động áp dụng khi đăng nhập
  • Sao lưu các tệp cấu hình : Trước khi chỉnh sửa các tệp như /etc/default/locale, hãy sao lưu

Kết luận

Vấn đề văn bản bị rối trong Ubuntu có thể được giải quyết bằng cách cấu hình đúng bốn thành phần then chốt: locale, phông chữ, bộ mã ký tự và cài đặt terminal/editor. Bằng cách thực hiện các phương pháp được giới thiệu trong hướng dẫn này, bạn có thể loại bỏ hầu hết các vấn đề văn bản bị rối trên mọi môi trường Ubuntu, dù là trong các phiên terminal, ứng dụng GUI, WSL hay container Docker.