- 1 1. Giới thiệu
- 2 2. Nguyên nhân chính gây ra văn bản bị rối
- 3 3. Kiểm tra và sửa cài đặt Locale
- 4 4. Cài Đặt và Cấu Hình Phông Chữ Nhật Bản
- 5 5. Kiểm Tra và Chuyển Đổi Mã Hóa Ký Tự
- 6 6. Kiểm tra Cài đặt Terminal và Trình chỉnh sửa
- 7 7. Giải pháp cho Các trường hợp Cụ thể
- 8 8. Câu hỏi thường gặp (FAQ)
- 8.1 Q1. Tôi đã cấu hình locale đúng, nhưng văn bản vẫn bị rối.
- 8.2 Q2. Chỉ một số tệp nhất định hiển thị văn bản bị rối.
- 8.3 Q3. Tôi không thể nhập ký tự Nhật trong terminal.
- 8.4 Q4. Văn bản tiếng Nhật bị rối trong WSL.
- 8.5 Q5. Văn bản tiếng Nhật bị rối bên trong container Docker.
- 8.6 Q6. Các menu và hộp thoại GUI hiển thị văn bản tiếng Nhật bị hỏng.
- 9 9. Tóm tắt
- 10 Kết luận
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
catxuấ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
lesshoặccat
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 Name | Description |
|---|---|
| Noto Sans CJK JP | A high-quality Japanese font provided by Google (recommended as default) |
| Takao Fonts | The former default fonts in Ubuntu, available in regular and bold styles |
| IPA Fonts | High-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
- Mở ứng dụng “Settings”
- Điều hướng tới mục “Fonts”
- Thay đổi “Standard Font”, “Document Font” và “Monospace Font” sang phông chữ bạn muốn
- Đă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
- Mở terminal
- Chọn “Preferences” từ menu
- Mở cài đặt “Profile” và bật “Use custom font”
- Chọn phông chữ bạn muốn (ví dụ: Noto Sans Mono CJK JP)
- 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:
- Kiểm tra các phông chữ đã cài đặt bằng lệnh
fc-listfc-list | grep "Noto"
- Kiểm tra hiển thị tiếng Nhật trong terminal
echo "こんにちは、Ubuntuの文字化け対策"
- 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:
| Encoding | Characteristics | Main Usage |
|---|---|---|
| UTF-8 | Multi-language support; standard in Linux | Ubuntu and web development |
| Shift_JIS | Japanese-focused; standard in Windows environments | Windows apps and legacy systems |
| EUC-JP | Previously used in UNIX-based systems | Older Linux distributions |
| ISO-2022-JP | Used in some mail systems | Email 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)
- Mở tệp bằng lệnh
gedit sample.txt - Khi lưu, chọn
UTF-8trong danh sách thả xuống “Encoding”
- VSCode (Visual Studio Code)
- Nhấp vào chỉ báo “Encoding” ở phía dưới của cửa sổ
- 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)
- Mở terminal
- Chọn “Preferences”
- Mở “Profile” và chuyển đến tab “Text”
- 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
- 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
- Nhấp vào chỉ báo “Encoding” ở góc dưới bên phải
- Chọn “Reopen with Encoding” và chọn
UTF-8 - 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:
- 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
- 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
- Truy cập
about:preferences - Mở “Fonts & Colors” → “Advanced”
Đặt cả phông chữ “Proportional” và “Monospace” thành
Noto Sans CJK JP* Google Chrome: wp:list {“ordered”:true} /wp:listTruy cập
chrome://settings/fonts- Thay đổi “Standard font” và “Fixed-width font” thành
Noto Sans CJK JP
- Truy cập
2. Văn bản bị rối trong LibreOffice
Giải pháp:
- Cài đặt các phông chữ Nhật Bản như
fonts-noto-cjkhoặcfonts-ipafont - 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:
- Kiểm tra locale trên máy chủ từ xa
locale
- 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:
- Cấu hình WSL để sử dụng
ja_JP.UTF-8echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc echo 'export LC_ALL=ja_JP.UTF-8' >> ~/.bashrc source ~/.bashrc
- Đặ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:
- Vào container và kiểm tra locale
docker exec -it container_name bash locale
- 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à
ChoặcPOSIX, 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
| Item | Solution |
|---|---|
| Locale configuration | Check with locale and run update-locale LANG=ja_JP.UTF-8 |
| Font installation | sudo apt install -y fonts-noto-cjk fonts-ipafont |
| Check file encoding | Use file -i or nkf --guess |
| Convert encoding | iconv -f SHIFT_JIS -t UTF-8 filename -o newfile |
| Terminal configuration | Set LESSCHARSET=utf-8 and change fonts to Noto Sans Mono CJK JP |
| Fix GUI garbled text | Set fonts to Noto Sans CJK JP and use gnome-tweaks if needed |
| Fix WSL garbled text | Set ja_JP.UTF-8 and configure fonts |
| Fix Docker garbled text | Run 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
~/.bashrchoặ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.


