한국어

네트워킹

온누리070 플레이스토어 다운로드
    acrobits softphone
     온누리 070 카카오 프러스 친구추가온누리 070 카카오 프러스 친구추가친추
     카카오톡 채팅 상담 카카오톡 채팅 상담카톡
    
     라인상담
     라인으로 공유

     페북공유

   ◎위챗 : speedseoul


  
     PAYPAL
     
     PRICE
     

pixel.gif

    before pay call 0088 from app


수치 처리기인 컴퓨터에서 숫자(2진수)와 문자를 서로 대응시키기 위해서는 문자 집합을 만들고 이를 코드화해야 합니다.  여기서 얘기하는 문자는 키보드 상에 새겨진 알파벳, 세계 각국의 문자, 숫자, 특수문자 뿐만 아니라 기타 제어 문자를 포괄합니다. 

이렇게 만들어진 문자 집합을 코드화된 문자 집합(CCS, coded character set)이라고 합니다.
ASCII(미국 표준), ISO 8859-1(서유럽 언어), ISO8859-2(중앙 유럽 언어), EUC-KR(행정용 한글), CP949(MS-949, MS社 한글), 유니코드, ... 등등 다양한 인코딩 방식이 있습니다. 참고로 EUC-KR은 2,350자의 한글, CP949는 11,172자의 한글을 표현할 수 있습니다.

전 세계적으로 사용되는 모든 문자 집합을 모아 탄생시킨 것이 유니코드 입니다. 유니코드 값을 나타내기 위해서는 코드 포인트(code point)를 사용하는데, 보통 U+를 붙여 표시합니다. 유니코드의 인코딩 방식으로는 코드 포인트를 코드화한 UCS-2와 UCS-4, 변환 인코딩 형식(UTF, UCS Transformation Format)인 UTF-7, UTF-8, UTF-16, UTF-32 인코딩 등이 있다. 이 중 ASCII와 호환이 가능하면서 유니코드를 표현할 수 있는 UTF-8 인코딩이 가장 많이 사용됩니다.

한글 윈도우는 CP949(MS949)가 기본 인코딩입니다. 리눅스는 LANG 환경 변수에 따라 EUC-KR(ko, ko_KR, ko_KR.eucKR)과 UTF-8 인코딩 방식을 사용합니다. 한글이 깨지는 주요 원인은 한글 윈도우와 리눅스에서 사용하는 코드화된 문자 집합이 서로 다르기 때문입니다.  이렇게 서로 인코딩 방식이 달라서 생기는 몇가지 문제의 해결 방법을 알아 보겠습니다.

아래의 내용은 모두 리눅스의 로캘(locale)이 UTF-8이라고 가정하고 설명되었습니다.
확인은 터미널에서 echo $LANG 또는 locale 명령으로 확인 가능합니다.
출력 결과:
LANG=ko_KR.UTF-8


1. ZIP 압축 파일의 한글 깨짐

터미널에서 압축을 풀 때 문자 인코딩 옵션(대문자 O)을 직접 지정해 줍니다.

$ unzip -O cp949 <압축파일.zip>

이런 식으로 매번 옵션을 사용하면 매우 번거롭죠. 번거로움 없이, 파일 관리자의 "여기에 풀기"에서도 사용하려면  /etc/profile (모든 사용자용) 또는 ~/.profile (현재 사용자용) 에 추가적인 설정이 필요합니다.

편집기(gedit, pluma, nano)로 파일을 열고
$ gksu gedit /etc/profile

또는
$ gedit ~/.profile

파일의 맨 끝에 아래 문장을 추가하고 저장합니다.

## Zip 압축 해제시 기본 인코딩을 CP949로 지정
export UNZIP="-O cp949"
export ZIPINFO="-O cp949"

로그아웃-로그인하고 zip 압축 파일을 풀어보면 한글이 정상적으로 잘 보입니다. 하지만, 이런 식으로 프로파일에 기본 인코딩 옵션을 지정하면 한글 윈도우에서 압축한 것이 아닐 때(다른 인코딩일 경우) 깨진다고 하네요.

한글 윈도우에서 zip 대신에 rar로 압축하고 리눅스에서 풀어 보면 파일명과 텍스트의 한글이 잘 보입니다.  아마도 압축 파일 내부에 문자 인코딩 정보를 가지고 있는듯 합니다. 7zip도 문제가 없다고 하는데 사용을 안 해봐서 모르겠네요. 7zip이 좋다고 하네요. 가능하면 zip 대신에 rar, 7z를 사용하는게 좋겠습니다.


2. 텍스트 파일의 한글 깨짐

gedit의 "파일 열기" 대화 상자에서 하단에 위치한 문자 인코딩을 "한국어(UHC)"로 선택하고 열기합니다.

저장은 "다른 이름으로 저장" 대화 상자에서 하단에 위치한 "문자 인코딩: 로캘(UTF-8), 줄 바꿈: 유닉스/리눅스"로 선택하고 저장합니다.


3. 인터넷에서 받은 파일명이 깨짐

파이어 폭스로 파일을 받다보면 %로 시작되면서 영어 대문자 조합으로 된 파일명이 있습니다.
(그런데 같은 파일을 크롬이나 오페라로 받으면 자동 변환되어 정상적이네요.)

예를 들면 이런 식으로요.
%EC%84%B8%EA%B3%84%EA%B2%AC%EB%AC%B8%EB%A1%9D

파일의 이름이 이와 같으면  URL 디코딩이 필요합니다.

방법 1) 아래의 웹 페이지에서 디코딩하세요. (URL, Decode, UTF-8 체크)



방법 2) 구글의 웹 스토어에서 '유니코드 변환기'라는 확장 프로그램을 설치해 보세요.

메뉴 표시(작대기3개) > 도구 더 보기 > 확장 프로그램 > 더 많은 확장 프로그램 다운로드를 클릭합니다.
웹 스토어가 열리면 "유니코드"를 검색하고 거시기 확장 프로그램을 설치합니다. 

사용 방법은 브라우저의 우측-상단 구석에 있는 유니코드 변환기 아이콘을 누르고 Percent encoding for URIs 입력란에 파일명을 붙여 넣고 변환하시면 됩니다.


방법 3)  터미널 명령으로도 URL 디코딩이 가능합니다.

## 별칭(에일리어스alias) 지정 및 확인
$ alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"'
$ alias

## urldecode 사용법
$ urldecode %EC%84%B8%EA%B3%84%EA%B2%AC%EB%AC%B8%EB%A1%9D

터미널을 닫으면 urldecode라는 alias는 사라집니다.
계속적으로 사용하려면 profile 또는 bashrc 파일에 이 alias를 추가해 줘야합니다.


4. 잘못 인식된 문자 인코딩 알아보기
(이 부분은 다소 실험적인 내용이므로 안 보셔도 됩니다.)

이 내용은 문제 해결 방법을 잘 몰랐을 때 인터넷으로 자료를 검색하다가 iconv와 convmv라는 명령어를 알게 되어서 작성한 것입니다.

파일 내용을 인코딩 변환할 때는 iconv를 사용하고, 파일명과 폴더명에 대한 인코딩 변환할 때는 convmv를 사용한다네요. 깨진 한글을 되살리기 위해 저 명령을 사용해 볼려니까 벌써 UTF-8 변환이 되었더라구요. 그래서 cp949가 아닌 어떤 문자 집합(CCS)으로 부터 변환이 된 것인지 알아보기 위해 스크립트를 작성해서 돌려봤습니다.

그 결과...
텍스트 파일은 ISO-8859-15 (LATIN-9)로 인식 되어서 한글이 깨진 것이고,
zip 파일은 CP866 (IBM866)으로 인식 되어서 한글이 깨진 것이었습니다.

그래서 다시 역과정을 통해 ISO-8859-15나 CP866을  CP949로 바꿔서 UTF-8로 변환하니까 텍스트 및 파일(폴더)명의 한글이 제대로 잘 보였습니다.

$ cat find_charset.sh
#!/bin/bash
for filename
do
for x in `cat charsets_list`; do
OUT=`echo $x:; echo "$filename" | iconv -c -f utf-8 -t $x | iconv -c -f cp949 -t utf-8`;
echo $OUT;
done

$ sh find_charset.sh "깨진 한글" > out.txt
--> out.txt 파일을 열어보면 잘못 인식된 문자셋에서 한글이 제대로 보임니다.

[첨부 파일: charsets_sh.tar.gz ]


P.S.
제가 전문가가 아닌 사용자의 입장에서 쓴 글이므로 다소 잘못된 내용이 있을 수 있습니다. 틀린 부분을 발견하시면 댓글 달아주세요. 수정하도록 하겠습니다.
감사합니다... ^_^

참고한 웹 페이지:
한글 인코딩의 이해 1편: 한글 인코딩의 역사와 유니코드
한글 인코딩의 이해 2편: 유니코드와 Java를 이용한 한글 처리 
우분투에서 zip 파일 한글 깨짐 현상 해결하기!
우분투(리눅스)에서 zip 파일 압축 해제시 한글 깨짐 문제 해결 방법
[완료]윈도우 파일을 우분투에서 읽으면 한글이 깨져요..;;
윈도우즈와 리눅스의 TXT 호환 문제, 압축파일 한글깨짐 문제
linux에서 zip으로 한글이 포함되어있는 파일을 압축할때 인코딩하는 옵션이 있나요..?
조회 수 :
35335
등록일 :
2018.03.28
17:20:09 (*.160.88.18)
엮인글 :
http://www.webs.co.kr/index.php?document_srl=3314198&act=trackback&key=24a
게시글 주소 :
http://www.webs.co.kr/index.php?document_srl=3314198
List of Articles