본문 바로가기
반응형

여러 환경에 설치 되어 있는 unix 를 사용하다보면, 문자가 깨져서 특수문자가 출력되는 경우가 종종 있다.

그 경우 export LANG=C 라는 명령어를 통해서 영어로 바꾸어 알아볼 수 있게 했었는데 이 의미가 무엇인지 조사해보았다.

  • 우선 Locale 의미를 이해해야한다.
    • Locale 각나라 고유표현 방법등을 고려한 국제화(현지화) 시키는 기능이라고 있다.
    • 예를 들어, 우리나라는 20201 03 18일이라고 표현하지만, 미국에서는 Mar 18 2021 이라고 표현한다.
    • Locale 같은 기능이 없다면, 애플리케이션에서 직접 분기시켜서 처리해야 하는 하드코딩을 거쳐야 하지만,
    • Locale 활용하면 쉽게 국제화가 가능하다.
  • Locale 관련 환경변수의 의미
    • $ locale
      • 터미널에 locale 입력시 환경변수들이 출력된다.
      • LANG, LC_ALL, LC_TIME, LC_NUMERIC, LC_ALL 등이 있으며 우리가 주로 설정하는 것은 LANG이다.
    • LANG
      • 모든 카테고리에 대한 Locale 설정하는 환경변수 이다.
      • 다른 LC_* 환경변수보다는 우선순위가 낮다. (가장 낮다고 보면된다.)

 

  • export LANG=C 의미
    • 어플리케이션 등이 한글 메시지를 출력할 터미널이 한글을 지원하지 못해 깨져 보일 경우 export LANG=C 입력하여 해결하곤 한다.
    • LANG 'C' 설정한다는 것은 locale 끄는 의미이고
    • , 한글로 국제화를 취소하고, C언어 혹은 POSIX(glibc)에서 사용하는 기본 Local 따른다는 의미라고 생각하면된다.
      • glibc ?
        • GNU C, GNU프로젝트가 C 표준 라이브러리를 구현한
      • POSIX ?
        • 이식 가능한 운영 체제 인터페이스 (Portable Operating System Interface)
        • UNIX OS 공통 API 정리하여 이식성이 높은 유닉스 응용 프로그램을 개발하기 위한 목적으로 IEEE 책정한 어플리케이션 인터페이스 규격
        • 마지막 X 유닉스 OS 들에 보통 X 붙어서 붙인거라고
728x90
반응형

한걸음 한걸음

개인적인 기록