ปัญหาตัวอักษรเพี้ยนใน Ubuntu: แก้ไข Locale, Font, Encoding (Ubuntu Mojibake Fix)

目次

1. บทนำ

เมื่อใช้งาน Ubuntu คุณอาจพบปัญหาตัวอักษรผิดเพี้ยน (mojibake) ในสถานการณ์ต่างๆ เช่น เอาต์พุตบนเทอร์มินัล การแสดงชื่อไฟล์ภาษาญี่ปุ่น หรือเมื่อดูหน้าเว็บภาษาญี่ปุ่นในเบราว์เซอร์ อาการจะแตกต่างกันไปตามสภาพแวดล้อม โดยเฉพาะอย่างยิ่ง ในหลายกรณี ภาษาญี่ปุ่นจะไม่แสดงผลอย่างถูกต้องหากยังคงใช้การตั้งค่าเริ่มต้น ดังนั้นจึงจำเป็นต้องมีการตั้งค่าที่เหมาะสม

บทความนี้จะอธิบายสาเหตุของปัญหาตัวอักษรผิดเพี้ยนใน Ubuntu และวิธีการแก้ไขปัญหาอย่างละเอียด ผู้อ่านเป้าหมายมีดังต่อไปนี้:

  • ผู้เริ่มต้นใช้งาน Ubuntu ที่ยังไม่ได้ตั้งค่าการแสดงผลภาษาญี่ปุ่น
  • ผู้ที่ต้องการทราบสาเหตุของตัวอักษรผิดเพี้ยนและหาวิธีแก้ไขปัญหาที่ต้นเหตุ
  • ผู้ที่พบปัญหาตัวอักษรผิดเพี้ยนในเทอร์มินัลหรือสภาพแวดล้อม GUI และต้องการทราบวิธีการแก้ไข

อันดับแรก มาดูสาเหตุหลักของปัญหาตัวอักษรผิดเพี้ยนใน Ubuntu กัน

侍エンジニア塾

2. สาเหตุหลักของปัญหาตัวอักษรผิดเพี้ยน

การตั้งค่าโลเคลไม่ถูกต้อง

โลเคล (locale) ใน Ubuntu คือการตั้งค่าสภาพแวดล้อมที่กำหนดภาษาของระบบและรูปแบบวันที่ หากไม่ได้ตั้งค่าอย่างถูกต้อง อาจทำให้ภาษาญี่ปุ่นไม่แสดงผลหรือเกิดปัญหาตัวอักษรผิดเพี้ยนได้

ตัวอย่างเช่น หากคุณรันคำสั่ง locale แล้วแสดงผลเป็น “C” หรือ “POSIX” ตามด้านล่าง แสดงว่าโลเคลอาจไม่ได้ตั้งค่าอย่างเหมาะสม:

$ locale
LANG=C
LC_ALL=

โดยปกติแล้ว ในสภาพแวดล้อมภาษาญี่ปุ่น ควรเป็น LANG=ja_JP.UTF-8

ไม่ได้ตั้งค่าหรือไม่มีฟอนต์

ในสถานะเริ่มต้นของ Ubuntu อาจไม่มีฟอนต์ภาษาญี่ปุ่นติดตั้งอยู่ ด้วยเหตุนี้ ข้อความภาษาญี่ปุ่นอาจไม่แสดงผลอย่างถูกต้อง และอาจปรากฏเป็นช่องสี่เหลี่ยม (□) หรือสัญลักษณ์ที่ไม่เข้าใจ

โดยเฉพาะอย่างยิ่ง สามารถยืนยันได้ว่าฟอนต์ไม่เพียงพอในสถานการณ์ต่อไปนี้:

  • เมนูหรือปุ่มในแอปพลิเคชัน GUI มีตัวอักษรผิดเพี้ยน
  • เมื่อเปิดไฟล์ภาษาญี่ปุ่นในโปรแกรมแก้ไขข้อความ ตัวอักษรผิดเพี้ยน

การเข้ารหัสอักขระไม่ตรงกัน

Ubuntu ใช้ UTF-8 เป็นมาตรฐานเป็นหลัก แต่หากเปิดไฟล์ที่มีการเข้ารหัสอักขระที่แตกต่างกัน เช่น Shift_JIS หรือ EUC-JP จากภายนอก อาจเกิดปัญหาตัวอักษรผิดเพี้ยนได้

ตัวอย่างเช่น เมื่อเปิดไฟล์ที่สร้างขึ้นในสภาพแวดล้อม Windows บน Ubuntu อาจเกิดปรากฏการณ์ดังต่อไปนี้:

  • เมื่อเปิดในโปรแกรมแก้ไขข้อความ จะแสดงสัญลักษณ์ที่ไม่เข้าใจ
  • เมื่อรันคำสั่ง cat ในเทอร์มินัล ตัวอักษรจะเสียหาย

การตั้งค่าเทอร์มินัลหรือโปรแกรมแก้ไขผิดพลาด

หากเทอร์มินัลหรือโปรแกรมแก้ไขไม่ได้ตั้งค่าอย่างเหมาะสม แม้แต่ไฟล์ที่เข้ารหัสด้วย UTF-8 ก็อาจไม่แสดงผลอย่างถูกต้อง

  • การตั้งค่าการเข้ารหัสของเทอร์มินัลไม่ใช่ UTF-8
  • ในโปรแกรมแก้ไขเช่น Vim หรือ VSCode การตรวจจับการเข้ารหัสอักขระอัตโนมัติไม่ทำงาน
  • เมื่อแสดงผลด้วย less หรือ cat ส่วนภาษาญี่ปุ่นจะกลายเป็น “?” หรือ “◇”

3. การตรวจสอบและแก้ไขการตั้งค่าโลเคล

วิธีการตรวจสอบการตั้งค่าโลเคล

ขั้นแรก ในการตรวจสอบการตั้งค่าโลเคลปัจจุบัน ให้รันคำสั่งต่อไปนี้:

locale

ตัวอย่างผลลัพธ์:

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=

ในกรณีนี้ LANG=C ซึ่งหมายความว่าสภาพแวดล้อมภาษาญี่ปุ่นไม่ได้ตั้งค่าอย่างเหมาะสม ในสภาพแวดล้อมภาษาญี่ปุ่น ควรเป็นดังนี้:

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

การติดตั้งและการตั้งค่าโลเคลภาษาญี่ปุ่น

1. การตรวจสอบและเพิ่มโลเคลภาษาญี่ปุ่น

ในการตรวจสอบว่าโลเคลภาษาญี่ปุ่นติดตั้งอยู่ในระบบหรือไม่ ให้รันคำสั่งต่อไปนี้:

locale -a | grep ja_JP

ตัวอย่างผลลัพธ์:

ja_JP.eucJP
ja_JP.utf8

หาก ja_JP.utf8 ไม่ปรากฏในรายการ คุณจะต้องติดตั้งโลเคเลภาษาญี่ปุ่น

รันคำสั่งต่อไปนี้เพื่อเพิ่มโลเคเลภาษาญี่ปุ่น:

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

ถัดไป เพื่อเปิดใช้งานโลเคเล ให้รันคำสั่งต่อไปนี้:

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

2. การตั้งค่าโลเคเลของระบบ

ในการใช้การเปลี่ยนแปลงโลเคเลกับทั้งระบบ ให้รันคำสั่งต่อไปนี้:

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

เพื่อให้การตั้งค่านี้ถาวร ให้เพิ่มลงใน ~/.bashrc หรือ ~/.profile

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

หรือ หากต้องการใช้กับผู้ใช้ทั้งหมด ให้แก้ไขไฟล์ต่อไปนี้:

sudo nano /etc/default/locale

เพิ่มหรือแก้ไขเนื้อหาต่อไปนี้:

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

ในการใช้การตั้งค่า ให้ล็อกเอาต์แล้วล็อกอินใหม่ หรือรีสตาร์ท

4. การติดตั้งและการตั้งค่าฟอนต์

ความจำเป็นของฟอนต์ภาษาญี่ปุ่น

ในสถานะเริ่มต้นของ Ubuntu อาจไม่มีฟอนต์ภาษาญี่ปุ่นติดตั้งอยู่ ด้วยเหตุนี้ ข้อความภาษาญี่ปุ่นอาจไม่แสดงผลอย่างถูกต้อง และอาจปรากฏเป็นช่องสี่เหลี่ยม (□) หรือสัญลักษณ์ที่ไม่เข้าใจ

โดยเฉพาะอย่างยิ่ง สามารถยืนยันได้ว่าฟอนต์ไม่เพียงพอในสถานการณ์ต่อไปนี้:

  • เมนูหรือปุ่มในแอปพลิเคชัน GUI มีตัวอักษรผิดเพี้ยน
  • เมื่อเปิดไฟล์ภาษาญี่ปุ่นในโปรแกรมแก้ไขข้อความ ตัวอักษรผิดเพี้ยน

ฟอนต์ภาษาญี่ปุ่นที่แนะนำ

ฟอนต์ภาษาญี่ปุ่นที่สามารถใช้ได้ใน Ubuntu มีดังนี้:

ชื่อฟอนต์คุณสมบัติ
Noto Sans CJK JPฟอนต์ภาษาญี่ปุ่นคุณภาพสูงที่ Google ให้บริการ (แนะนำเป็นค่าเริ่มต้น)
Takao Fontฟอนต์มาตรฐาน Ubuntu แบบดั้งเดิม (มีแบบบางและแบบหนา)
IPA Fontฟอนต์คุณภาพสูงที่ Information-technology Promotion Agency (IPA) ให้บริการ
VL Gothicอ่านง่ายและเหมาะสำหรับเทอร์มินัล

วิธีการติดตั้งฟอนต์

1. Noto Sans CJK JP (ฟอนต์แนะนำเป็นค่าเริ่มต้น)

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

2. Takao Font

sudo apt install -y fonts-takao

3. IPA Font (Information-technology Promotion Agency)

sudo apt install -y fonts-ipafont

4. VL Gothic (สำหรับเทอร์มินัล)

sudo apt install -y fonts-vlgothic

เมื่อการติดตั้งเสร็จสิ้น ให้รีสตาร์ทระบบหรืออัปเดตแคชฟอนต์เพื่อใช้การตั้งค่า

fc-cache -fv

วิธีการตั้งค่าฟอนต์

การตั้งค่าฟอนต์ในแอปพลิเคชัน GUI

  1. เปิดแอปพลิเคชัน “การตั้งค่า”
  2. เปิดส่วน “ฟอนต์”
  3. เปลี่ยน “ฟอนต์มาตรฐาน”, “ฟอนต์เอกสาร”, “ฟอนต์กว้างเท่ากัน” เป็นฟอนต์ที่คุณต้องการ
  4. ล็อกเอาต์และล็อกอินใหม่เพื่อใช้การตั้งค่า

การตั้งค่าฟอนต์ในเทอร์มินัล

  1. เปิดเทอร์มินัล
  2. เลือก “การตั้งค่า” → “แก้ไขโปรไฟล์” จากเมนู
  3. ทำเครื่องหมายที่ “ใช้ฟอนต์แบบกำหนดเอง” ในส่วน “ฟอนต์”
  4. เลือกฟอนต์ที่คุณต้องการ (เช่น Noto Sans Mono CJK JP)
  5. บันทึกการตั้งค่าและรีสตาร์ทเทอร์มินัล

การใช้และตรวจสอบการตั้งค่า

ในการตรวจสอบว่าการตั้งค่าฟอนต์ถูกนำไปใช้ถูกต้องหรือไม่ ให้ลองใช้วิธีต่อไปนี้:

  1. ตรวจสอบฟอนต์ที่ติดตั้งด้วยคำสั่ง fc-list
fc-list | grep "Noto"
  1. ตรวจสอบการแสดงผลภาษาญี่ปุ่นในเทอร์มินัล
echo "สวัสดี, วิธีแก้ไขปัญหาตัวอักษรผิดเพี้ยนของ Ubuntu"
  1. ตรวจสอบว่าภาษาญี่ปุ่นแสดงผลอย่างถูกต้องในแอปพลิเคชัน GUI (Firefox, LibreOffice ฯลฯ)

5. การตรวจสอบและแปลงการเข้ารหัสอักขระ

การเข้ารหัสอักขระคืออะไร?

การเข้ารหัสอักขระ (Character code) คือกฎสำหรับการจัดการอักขระเป็นข้อมูลดิจิทัล การเข้ารหัสอักขระที่สำคัญมีดังนี้:

การเข้ารหัสอักขระคุณสมบัติการใช้งานหลัก
UTF-8รองรับหลายภาษา, มาตรฐานใน LinuxUbuntu และการพัฒนาเว็บ
Shift_JISเฉพาะภาษาญี่ปุ่น, เป็นที่นิยมใน Windowsแอปพลิเคชัน Windows, ระบบเก่า
EUC-JPเคยใช้ในระบบ UNIXระบบ Linux เก่า
ISO-2022-JPใช้ในอีเมลและบางสภาพแวดล้อมการส่งและรับอีเมล

Ubuntu ใช้ UTF-8 เป็นมาตรฐานเป็นหลัก ดังนั้น หากเปิดไฟล์ที่บันทึกด้วยการเข้ารหัสอักขระอื่น อาจเกิดปัญหาตัวอักษรผิดเพี้ยนได้

วิธีการตรวจสอบการเข้ารหัสอักขระของไฟล์

1. ใช้คำสั่ง file

file -i sample.txt

ตัวอย่างผลลัพธ์:

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

2. ใช้คำสั่ง nkf

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

ตัวอย่างผลลัพธ์:

Shift_JIS (CRLF)

วิธีการแปลงการเข้ารหัสอักขระ

1. ใช้คำสั่ง iconv

ตัวอย่างการแปลง Shift_JIS → UTF-8:

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

ตัวอย่างการแปลง EUC-JP → UTF-8:

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

2. ใช้คำสั่ง nkf

ตัวอย่างการแปลง Shift_JIS → UTF-8:

nkf -w sample.txt > sample_utf8.txt

ตัวอย่างการแปลง EUC-JP → UTF-8:

nkf -w --overwrite sample.txt

การแก้ไขปัญหาตัวอักษรผิดเพี้ยนในเทอร์มินัลและโปรแกรมแก้ไข

1. แสดงผลอย่างถูกต้องโดยใช้คำสั่ง less

export LESSCHARSET=utf-8
less sample.txt

2. เปิดด้วย Vim โดยระบุการเข้ารหัสอักขระ

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

3. เปลี่ยนการเข้ารหัสอักขระใน gedit หรือ VSCode

  • gedit (โปรแกรมแก้ไขมาตรฐาน GNOME)
  1. เปิดไฟล์ด้วย gedit sample.txt
  2. เมื่อ “บันทึกเป็น” ให้เปลี่ยน “การเข้ารหัส” เป็น UTF-8
  • VSCode (Visual Studio Code)
  1. คลิก “การเข้ารหัส” ที่ด้านล่างของหน้าจอ
  2. แปลงเป็น UTF-8

6. การตรวจสอบการตั้งค่าเทอร์มินัลและโปรแกรมแก้ไข

การตรวจสอบและแก้ไขการตั้งค่าเทอร์มินัล

1. ตรวจสอบการตั้งค่าการเข้ารหัสของเทอร์มินัล

ในการตรวจสอบตัวแปรสภาพแวดล้อมปัจจุบัน ให้รันคำสั่งต่อไปนี้:

echo $LANG
echo $LC_ALL

ตัวอย่างผลลัพธ์ (หากตั้งค่าถูกต้อง)

ja_JP.UTF-8
ja_JP.UTF-8

หากเป็น C หรือ POSIX ฯลฯ คุณต้องเปลี่ยนเป็นโลเคเลที่เหมาะสม (ja_JP.UTF-8)

2. การตั้งค่าฟอนต์ของเทอร์มินัล

GNOME Terminal (เทอร์มินัลเริ่มต้น)

  1. เปิดเทอร์มินัล
  2. เปิด “การตั้งค่า” จากเมนู
  3. เปิด “แก้ไขโปรไฟล์” → แท็บ “ข้อความ”
  4. เปิดใช้งาน “ใช้ฟอนต์แบบกำหนดเอง” และเลือกอย่างใดอย่างหนึ่งดังต่อไปนี้:
  • Noto Sans Mono CJK JP
  • VL Gothic
  • Takao Gothic
  1. บันทึกการตั้งค่าและรีสตาร์ทเทอร์มินัล

การตั้งค่าการเข้ารหัสอักขระของโปรแกรมแก้ไขข้อความ

1. การตั้งค่าการเข้ารหัสอักขระของ Vim

ในการตรวจสอบการตั้งค่าปัจจุบัน ให้เปิด Vim และรันคำสั่งต่อไปนี้:

:set encoding?
:set fileencoding?

ตัวอย่างผลลัพธ์:

encoding=utf-8
fileencoding=utf-8

หากไม่ใช่ utf-8 ให้เพิ่มข้อความต่อไปนี้ลงในไฟล์การตั้งค่า Vim (~/.vimrc) เพื่อเปลี่ยนค่าเริ่มต้นเป็น UTF-8:

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

2. การตั้งค่าการเข้ารหัสอักขระของ Nano

หากต้องการเปลี่ยนการตั้งค่าเริ่มต้น ให้เพิ่มข้อความต่อไปนี้ลงในไฟล์การตั้งค่า (~/.nanorc):

set encoding "utf-8"

3. การตั้งค่าการเข้ารหัสอักขระของ VSCode (Visual Studio Code)

  1. คลิก “การเข้ารหัส” ที่ด้านล่างขวาของหน้าจอโปรแกรมแก้ไข
  2. เลือก UTF-8 จาก “เปลี่ยนการเข้ารหัส”
  3. ดำเนินการ “บันทึกพร้อมการเข้ารหัส” หากจำเป็น

นอกจากนี้ ในการตั้งค่าเริ่มต้นเป็น UTF-8 ให้เพิ่มข้อความต่อไปนี้ลงใน ไฟล์การตั้งค่า (settings.json):

"files.encoding": "utf8"

7. การแก้ไขปัญหาตามกรณี

การแก้ไขปัญหาตัวอักษรผิดเพี้ยนในแอปพลิเคชัน GUI

1. การแสดงผลภาษาญี่ปุ่นใน Firefox หรือ Chrome เสียหาย

วิธีแก้ไข:

  1. ติดตั้งฟอนต์ที่จำเป็น
sudo apt install -y fonts-noto-cjk fonts-ipafont
  1. ตรวจสอบการตั้งค่าฟอนต์ของเบราว์เซอร์
  • Firefox:
    1. เข้าถึง about:preferences และเปิด “ฟอนต์และสี” → “ขั้นสูง”
    2. เปลี่ยน “Proportional” และ “Monospace” เป็น Noto Sans CJK JP
  • Chrome:
    1. เข้าถึง chrome://settings/fonts
    2. เปลี่ยน “Standard font” และ “Fixed-width font” เป็น Noto Sans CJK JP

2. ตัวอักษรภาษาญี่ปุ่นผิดเพี้ยนใน LibreOffice

วิธีแก้ไข:

  1. ติดตั้ง fonts-noto-cjk และ fonts-ipafont
  2. เปลี่ยนการตั้งค่า LibreOffice
  • “เครื่องมือ” → “ตัวเลือก” → “LibreOffice” → “ฟอนต์”
  • เปลี่ยน “ฟอนต์มาตรฐาน” เป็น Noto Sans CJK JP

การแก้ไขปัญหาตัวอักษรผิดเพี้ยนในสภาพแวดล้อม CUI

1. ตัวอักษรผิดเพี้ยนเมื่อเชื่อมต่อ SSH

วิธีแก้ไข:

  1. ตรวจสอบ locale บนฝั่งเซิร์ฟเวอร์ว่าตั้งค่าเป็น ja_JP.UTF-8 หรือไม่
locale
  1. หากไม่ใช่ ja_JP.UTF-8 ให้รันคำสั่งต่อไปนี้:
sudo apt install -y language-pack-ja
sudo locale-gen ja_JP.UTF-8
sudo update-locale LANG=ja_JP.UTF-8

การแก้ไขปัญหาตัวอักษรผิดเพี้ยนในแอปพลิเคชันเฉพาะ

1. ตัวอักษรผิดเพี้ยนใน WSL (Windows Subsystem for Linux)

วิธีแก้ไข:

  1. ตั้งค่าโลเคเลของ WSL เป็น ja_JP.UTF-8
echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=ja_JP.UTF-8' >> ~/.bashrc
source ~/.bashrc
  1. เปลี่ยนฟอนต์ของ Windows Terminal เป็น Noto Sans Mono CJK JP

2. ตัวอักษรผิดเพี้ยนภายใน Docker Container

วิธีแก้ไข:

  1. เข้าสู่ Docker Container และตรวจสอบโลเคเล
docker exec -it container_name bash
locale
  1. เพิ่มโลเคเลภาษาญี่ปุ่น
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)

Q1. ตั้งค่าโลเคเลแล้ว แต่ตัวอักษรผิดเพี้ยนยังไม่หายไป

A: หากตั้งค่าโลเคเลอย่างเหมาะสมแล้ว แต่ตัวอักษรผิดเพี้ยนยังไม่หายไป ให้ตรวจสอบดังนี้:

locale

หากไม่ใช่ LANG=ja_JP.UTF-8 จำเป็นต้องตั้งค่าใหม่

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

Q2. เฉพาะไฟล์บางไฟล์เท่านั้นที่ตัวอักษรผิดเพี้ยน

A: การเข้ารหัสอักขระอาจแตกต่างกันไปในแต่ละไฟล์ ตรวจสอบการเข้ารหัสอักขระด้วยวิธีต่อไปนี้:

file -i sample.txt

หากไม่ใช่ UTF-8 จำเป็นต้องแปลง

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

หรือ หากใช้ nkf:

nkf -w --overwrite sample.txt

Q3. ไม่สามารถพิมพ์ภาษาญี่ปุ่นในเทอร์มินัลได้

A: ตรวจสอบว่าได้ติดตั้งวิธีการป้อนภาษาญี่ปุ่น (Fcitx หรือ IBus) แล้วหรือไม่

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

Q4. ภาษาญี่ปุ่นตัวอักษรผิดเพี้ยนใน WSL (Windows Subsystem for Linux)

A: ตั้งค่าโลเคเลของ WSL เป็น ja_JP.UTF-8

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

Q5. ภาษาญี่ปุ่นตัวอักษรผิดเพี้ยนภายใน Docker Container

A: หากโลเคเลของ Docker Container เป็น C.UTF-8 ภาษาญี่ปุ่นจะไม่แสดงผลอย่างถูกต้อง

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 ของ Ubuntu ตัวอักษรผิดเพี้ยน

A: ติดตั้ง fonts-noto-cjk และเปลี่ยนการตั้งค่าฟอนต์

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

9. สรุป

ในบทความนี้ เราได้อธิบายอย่างละเอียดเกี่ยวกับปัญหาตัวอักษรผิดเพี้ยนใน Ubuntu สาเหตุ และวิธีการแก้ไข ปัญหาตัวอักษรผิดเพี้ยนเกิดจากการตั้งค่าโลเคเลไม่ถูกต้อง ไม่ได้ติดตั้งฟอนต์ หรือการเข้ารหัสอักขระไม่ตรงกัน แต่สามารถป้องกันได้โดยการตั้งค่าอย่างเหมาะสม

1. สาเหตุหลักของปัญหาตัวอักษรผิดเพี้ยน

  • การตั้งค่าโลเคเลผิดพลาด: หากภาษาเริ่มต้นของ Ubuntu เป็น C หรือ POSIX ภาษาญี่ปุ่นจะไม่แสดงผลอย่างถูกต้อง
  • ไม่ได้ตั้งค่าฟอนต์: หากไม่ได้ติดตั้งฟอนต์ภาษาญี่ปุ่น จะเกิดปัญหาตัวอักษรผิดเพี้ยนใน GUI หรือเทอร์มินัล
  • การเข้ารหัสอักขระไม่ตรงกัน: หากเปิดไฟล์ที่มีการเข้ารหัสอักขระแตกต่างกัน (เช่น Shift_JIS) จะเกิดปัญหาตัวอักษรผิดเพี้ยน
  • การตั้งค่าเทอร์มินัลหรือโปรแกรมแก้ไขผิดพลาด: หากไม่ได้ตั้งค่าเป็น UTF-8 จะไม่แสดงผลอย่างถูกต้อง

2. วิธีแก้ไขปัญหาตัวอักษรผิดเพี้ยน

รายการวิธีแก้ไข
การตั้งค่าโลเคเลตรวจสอบด้วยคำสั่ง locale และรัน update-locale LANG=ja_JP.UTF-8
การติดตั้งฟอนต์sudo apt install -y fonts-noto-cjk fonts-ipafont
การตรวจสอบการเข้ารหัสอักขระตรวจสอบการเข้ารหัสอักขระของไฟล์ด้วย file -i หรือ nkf --guess
การแปลงการเข้ารหัสอักขระiconv -f SHIFT_JIS -t UTF-8 ชื่อไฟล์ -o ชื่อไฟล์ที่แปลงแล้ว
การตั้งค่าเทอร์มินัลตั้งค่า LESSCHARSET=utf-8 และเปลี่ยนฟอนต์เป็น Noto Sans Mono CJK JP
ตัวอักษรผิดเพี้ยนใน GUIตั้งค่าฟอนต์เป็น Noto Sans CJK JP และใช้ gnome-tweaks หากจำเป็น
ตัวอักษรผิดเพี้ยนใน WSLตั้งค่า LANG=ja_JP.UTF-8 และเปลี่ยนฟอนต์
ตัวอักษรผิดเพี้ยนใน Dockerรัน locale-gen ja_JP.UTF-8 และตั้งค่าโลเคเลใน Dockerfile

3. มาตรการเพิ่มเติม

  • อัปเดตระบบเป็นประจำ: หากแพ็คเกจ Ubuntu ล้าสมัย อาจส่งผลกระทบต่อสภาพแวดล้อมภาษาญี่ปุ่น
sudo apt update && sudo apt upgrade -y
  • ทำให้การตั้งค่าถาวร: การเพิ่มการเปลี่ยนแปลงลงใน ~/.bashrc หรือ ~/.profile จะทำให้มีการใช้การตั้งค่าเมื่อล็อกอิน
  • สำรองข้อมูล: สำรองไฟล์การตั้งค่าเช่น /etc/default/locale ก่อนทำการเปลี่ยนแปลง

ข้อสรุปสุดท้าย

ปัญหาตัวอักษรผิดเพี้ยนที่เกิดขึ้นใน Ubuntu สามารถแก้ไขได้โดยการตั้งค่าองค์ประกอบสี่ประการอย่างเหมาะสม: โลเคเล ฟอนต์ การเข้ารหัสอักขระ และการตั้งค่าเทอร์มินัล การใช้วิธีการที่นำเสนอในบทความนี้จะช่วยป้องกันปัญหาตัวอักษรผิดเพี้ยนในสภาพแวดล้อมส่วนใหญ่

年収訴求