◽ Ubuntu

[Linux Ubuntu] Ubuntu Server Minimal Encoding change [ c.UTF-8 -> en_US.UTF-8 ] : 인코딩 변경


c.UTF-8 -> en_US.UTF-8

  Ubuntu Server를 설치하고서 암호화 관련 암복호화 하는 중에 한글에 한해서, 기존 장비 CetOS계열의 암호화된 한글 암호문이 복호화되지 않아서 이것저것 살펴보다가 OS의 LANG을 살펴보던 도중 조금 다른점이 발견되어 인코딩에 대해 알아보았고, 이러한 인코딩을 변경하는 방법 또한 정리를 하려고 한다.


 

1. c.UTF-8? en_UTF-8? 같은 UTF-8인데 무엇이 다른가?

locale의 기본 포맷은 이렇다. "language[_territory][.codeset][@modifier]" 이 포맷만 보면 아래의 인코딩을 해석 할 수 있다. 같은 UTF-8이라도 아주아주 많은 종류가 있고 이 중 가장 기본이 되는 "en_US.UTF-8"로 설명하면 아래의 그림과 같다.

 

따라서 이렇게 분류가 된 이유는 예를 들면 통화 단위에 콤마를 쓸 때 몇번째 자리부터 쓰는지부터 주소 체계, 자음/모음, 알파벳 순서 등등 그 지역과 그 언어에 국한된 문화(?)같은 것이 반영되었다고 생각하면 될 것 같다. 더 자세한 것들은 표준을 정의하는 홈페이지에서 참고하시면 될 것 같고 이 글에서는 인코딩 변경을 위한 것이기 때문에, 이러한 포맷으로 인코딩이 정의된다라고만 알고 넘어가면 될 듯하다.

 

 

 

 

 

 

2. Ubuntu Lang 확인 및 변경

 2.1. Ubuntu Server Minimal 버전을 설치하면, 기본값이 C.UTF-8로 잡혀있다.

그림 2-1

 

 

 2.2. OS에서 "#vi /etc/default/locale"을 한 뒤, 인코딩을 변경할 수 있는 종류는 "# locale -a"로 확인할 수 있는데, 그림 2-2을 살펴보면, ubuntu minimal 버전에서는 "C", "C.utf8", "POSIX" 밖에 바꿀 수 없다. 그래서 그림2-3과 같이 바꾼다고 한들 변경되지 않는다.

그림 2-2
그림 2-3

 

 

 

 

 

 

 

 

3. locales 설치 및 en_US.UTF-8 생성

 3.1. "# apt install locales"로 locales를 설치한다.

그림 3-1

 3.2. 이제 "en_US.UTF-8"을 만들 것인데 "# locale-gen en_US.UTF-8"을 실행하면 아의 그림 3-1과 같이 변경 할 수 있는 인코딩이 추가됨을 알 수 있다.

그림 3-2

 

 

 

 

 

 

 

4. 적용

"#vi /etc/default/locale"에서 "en_US.UTF-8"로 변경한 뒤 재부팅을 진행하면 정상적으로 적용이 된다.

 

 


참고 :

- https://www.44bits.io/ko/keyword/locale

- https://fmyson.tistory.com/359

- https://www.joinc.co.kr/w/Site/Linux/Locale


 

푸터바