Ubuntu에서 깨진 텍스트를 해결하는 방법: 로케일, 폰트 및 인코딩 설정 완전 가이드

.

目次

1. 소개

Ubuntu를 사용할 때 가끔씩 깨진 문자를 마주칠 수 있습니다. 이러한 문제는 터미널 출력, 일본어 파일명 표시, 브라우저에서 일본어 웹 페이지를 보는 등 다양한 상황에서 나타날 수 있습니다. 대부분의 경우 기본 설정으로는 일본어 텍스트가 올바르게 표시되지 않으므로, 적절한 설정이 필수적입니다.

이 문서는 Ubuntu에서 깨진 텍스트가 발생하는 원인을 설명하고, 이를 해결하기 위한 구체적인 방법을 제공합니다. 이 가이드는 다음과 같은 사용자를 대상으로 합니다:

  • 일본어 지원을 설정하지 않은 상태로 Ubuntu를 사용하는 초보자
  • 깨진 문자의 근본 원인을 이해하고 근본적인 해결책을 찾고자 하는 사용자
  • 터미널이나 GUI 환경에서 텍스트가 깨지는 현상을 겪고 있으며 해결 방법을 알고 싶은 사용자

먼저 Ubuntu에서 텍스트가 깨지는 주요 원인을 살펴보겠습니다.

2. 텍스트가 깨지는 주요 원인

잘못된 로케일 설정

Ubuntu의 로케일은 언어, 날짜 형식 및 기타 지역별 동작과 관련된 시스템 설정을 정의합니다. 이 설정이 올바르지 않으면 일본어 텍스트가 제대로 표시되지 않아 깨진 문자가 나타날 수 있습니다.

예를 들어 locale 명령을 실행했을 때 “C” 또는 “POSIX”와 같은 값이 표시된다면 시스템 로케일이 제대로 설정되지 않은 것입니다:

$ locale
LANG=C
LC_ALL=

일본어 환경이라면 LANG=ja_JP.UTF-8과 같은 설정이 표시되어야 합니다.

폰트가 없거나 설정되지 않음

일부 기본 Ubuntu 설치에서는 일본어 폰트가 포함되지 않아 일본어 텍스트가 빈 사각형(□)이나 읽을 수 없는 기호로 표시될 수 있습니다.

이 문제는 다음과 같은 상황에서 주로 발생합니다:

  • GUI 애플리케이션의 메뉴 항목 및 버튼이 깨져 보임
  • 텍스트 편집기에서 일본어 파일을 열면 깨진 문자 표시

문자 인코딩 불일치

Ubuntu는 주로 UTF-8 인코딩을 사용합니다. 레거시 Windows나 UNIX 시스템에서 흔히 사용되는 Shift_JIS 또는 EUC-JP 인코딩으로 된 파일을 열면 텍스트가 손상될 수 있습니다.

일반적인 문제 예시:

  • 텍스트 편집기가 일본어 파일을 열 때 이상한 기호가 표시됨
  • cat 명령의 출력이 터미널에서 깨져 보임

터미널 또는 편집기 설정 오류

파일이 UTF-8로 올바르게 인코딩되어 있더라도 터미널이나 편집기 설정이 잘못되어 있으면 여전히 표시 문제가 발생할 수 있습니다.

  • 터미널 인코딩이 UTF-8이 아닌 다른 값으로 설정됨
  • Vim이나 VSCode와 같은 편집기가 문자 인코딩을 자동 감지하지 못함
  • lesscat으로 볼 때 일본어 문자가 “?” 또는 “◇”로 표시됨

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에서 사용할 수 있는 일본어 글꼴은 다음과 같습니다:

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

일본어 글꼴 설치 방법

1. Noto Sans CJK JP (권장 기본 글꼴)

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 (터미널용)

sudo apt install -y fonts-vlgothic

설치가 완료되면 시스템을 재시작하거나 글꼴 캐시를 새로 고칩니다:

fc-cache -fv

글꼴 설정 방법

GUI 애플리케이션에서 글꼴 설정

  1. “설정” 애플리케이션을 엽니다
  2. “글꼴” 섹션으로 이동합니다
  3. “표준 글꼴”, “문서 글꼴”, “고정폭 글꼴”을 원하는 글꼴로 변경합니다
  4. 로그아웃한 뒤 다시 로그인하여 변경 사항을 적용합니다

터미널에서 글꼴 설정

  1. 터미널을 엽니다
  2. 메뉴에서 “Preferences”(환경설정) 를 선택합니다
  3. “Profile”(프로파일) 설정을 열고 “Use custom font”(사용자 정의 글꼴 사용)를 활성화합니다
  4. 원하는 글꼴을 선택합니다 (예: Noto Sans Mono CJK JP)
  5. 설정을 저장하고 터미널을 재시작합니다

글꼴 설정 확인

글꼴이 올바르게 적용되었는지 확인하려면 다음 단계를 수행하십시오:

  1. fc-list 명령으로 설치된 글꼴을 확인합니다
    fc-list | grep "Noto"
    
  1. 터미널에서 일본어 표시를 확인합니다
    echo "こんにちは、Ubuntuの文字化け対策"
    
  1. Firefox나 LibreOffice와 같은 GUI 애플리케이션에서 일본어 텍스트가 정상적으로 렌더링되는지 확인합니다

5. 문자 인코딩 확인 및 변환

문자 인코딩이란?

문자 인코딩은 문자를 디지털 형태로 표현하는 방법을 정의합니다. 일반적인 인코딩에는 다음이 포함됩니다:

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

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. 저장할 때 “Encoding”(인코딩) 드롭다운에서 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 (Ubuntu 기본 터미널)

  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과 다르면 ~/.vimrc를 다음으로 업데이트하세요:

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 인코딩 설정

  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: wp:list {“ordered”:true} /wp:list

    1. about:preferences 방문
    2. “폰트 및 색상” → “고급” 열기
    3. “비례” 및 “고정 폭” 폰트를 모두 Noto Sans CJK JP로 설정 * Google Chrome: wp:list {“ordered”:true} /wp:list

    4. chrome://settings/fonts 접근

    5. “표준 글꼴” 및 “고정 폭 글꼴”을 Noto Sans CJK JP로 변경

2. LibreOffice에서 글자 깨짐

해결책:

  1. fonts-noto-cjk 또는 fonts-ipafont와 같은 일본어 폰트 설치
  2. LibreOffice 폰트 설정 변경
  • “도구” → “옵션” → “LibreOffice” → “폰트”로 이동
  • 기본 폰트를 Noto Sans CJK JP로 설정

CUI 환경에서 글자 깨짐 방지

1. SSH 세션에서 깨진 문자가 표시됨

해결책:

  1. 원격 서버에서 로케일 확인
    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 컨테이너 내부에서 일본어 텍스트가 깨짐

해결책:

  1. 컨테이너에 들어가 로케일 확인
    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에서 일본어 텍스트가 깨집니다.

A: WSL에서 로케일을 설정하세요:

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

Q5. Docker 컨테이너 내부에서 일본어 텍스트가 깨집니다.

A: 로케일이 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 메뉴와 대화상자에서 일본어 텍스트가 손상되어 표시됩니다.

A: 폰트를 설치하고 폰트 설정을 변경하세요:

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

9. 요약

이 기사는 Ubuntu에서 발생하는 깨진 텍스트 문제의 원인과 해결책에 대한 상세한 설명을 제공했습니다. 깨진 문자는 일반적으로 잘못된 로케일 설정, 누락된 폰트, 불일치한 문자 인코딩, 또는 잘못된 터미널/편집기 구성으로 인해 발생합니다. 그러나 적절한 조정을 통해 이러한 문제를 효과적으로 해결할 수 있습니다.

1. 깨진 텍스트의 주요 원인

  • 잘못된 로케일 구성 : 시스템 로케일이 C 또는 POSIX로 설정된 경우 일본어 텍스트를 올바르게 표시할 수 없습니다
  • 폰트가 설치되지 않음 : 일본어 폰트가 없으면 GUI 애플리케이션과 터미널이 일본어 문자를 제대로 렌더링할 수 없습니다
  • 인코딩 불일치 : 다른 인코딩(예: Shift_JIS)으로 저장된 파일을 열 때 손상이 발생할 수 있습니다
  • 부적절한 터미널/편집기 설정 : 인코딩이 UTF-8로 설정되지 않으면 일본어 텍스트가 올바르게 표시되지 않을 수 있습니다

2. 깨진 텍스트를 방지하는 해결책

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. 추가 권장 사항

  • 시스템을 최신 상태로 유지하세요 : 오래된 패키지가 일본어 환경에서 문제를 일으킬 수 있습니다
    sudo apt update && sudo apt upgrade -y
    
  • 설정을 영구적으로 유지하세요 : 로케일 설정을 ~/.bashrc 또는 ~/.profile에 추가하여 로그인 시 자동으로 적용되도록 하세요
  • 구성 파일 백업 : /etc/default/locale와 같은 파일을 편집하기 전에 백업을 만드세요

결론

Ubuntu의 깨진 텍스트 문제는 로케일, 폰트, 문자 인코딩, 터미널/편집기 설정의 네 가지 주요 구성 요소를 적절히 구성함으로써 해결할 수 있습니다. 이 가이드에서 소개된 방법을 따르면 터미널 세션, GUI 애플리케이션, WSL 또는 Docker 컨테이너와 같은 Ubuntu 환경 전반에서 거의 모든 깨진 텍스트 문제를 제거할 수 있습니다.