한국어

네트워킹

온누리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으로 한글이 포함되어있는 파일을 압축할때 인코딩하는 옵션이 있나요..?
조회 수 :
29927
등록일 :
2018.03.28
17:20:09 (*.160.88.18)
엮인글 :
http://webs.co.kr/index.php?document_srl=3314198&act=trackback&key=58e
게시글 주소 :
http://webs.co.kr/index.php?document_srl=3314198
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
123 intel i210 driver install and compile debian admin 2015-06-27 266426
122 리눅스에 RADIUS 서버 구현하기 admin 2012-09-01 223812
121 tar로 전체시스템 백업 LINUX Backup admin 2013-04-04 207191
120 리눅스 시스템 시작시에 자동 실행할 파일 등록하기 admin 2014-03-22 193321
119 PUTTY DOWNLOAD - FREE SSH & TELNET CLIENT admin 2017-09-03 175054
118 [linux]리눅스 버전및 CPU등 환경정보 확인하기 admin 2013-04-08 174773
117 FreeRADIUS 설치(freeradius-sever-2.1.8) admin 2013-04-19 152665
116 Getting started with SSH public key cryptography admin 2013-09-05 149645
115 How to Manually Unblock / Unban IP Address in fail2ban 차단풀기 admin 2017-09-12 149598
114 Site builder shootout: Drupal vs. Joomla vs. WordPress admin 2012-07-15 144544
113 CentOS 5.4에서 RADIUS 서버 설치하기 admin 2013-04-19 143409
112 Ubuntu 14.04 원격 접속(xrdp) 설정 admin 2014-12-21 131480
111 리눅스 서버 이전시 고려할 사항들 admin 2011-12-16 129318
110 리눅스 부팅시 자동 실행 명령스크립트 실행하기 만들기 이해 linux booting admin 2017-08-30 128102
109 linux 에티터 명령어 정리 포그라운드 전환 : ctrl + z 다시 vi 모드로 돌아오려면 fg admin 2014-03-05 127632
108 openvpn Easy Windows Guide admin 2017-09-20 120596
107 How To Protect SSH with fail2ban on Debian 7 데비안 ssh 방어 무작위 로그인 admin 2017-09-12 120511
106 Debian / Ubuntu Linux Install Kernel Headers Package admin 2015-06-27 118947
105 리눅스 시작시에 부팅시 프로세스 프로그램 자동 실행 설정 admin 2017-08-30 118200
104 the world’s most widely deployed RADIUS server document admin 2017-08-29 118037
103 리눅스 데비안 네트워크 설정 유선랜 무선랜 linux debian network setting 설정 admin 2017-09-07 117097
102 파이썬 설치 및 사용하기 admin 2011-12-16 107918
101 Linux Date Command Examples to Display and Set System Date Time admin 2013-07-11 103568
100 Radius를 이용한 ssh 인증 서버 구축하기 admin 2013-04-19 98366
99 네트워크 디바이스명 변경 리눅스 eth0 eth1 admin 2017-08-29 93621
98 Build a RADIUS server on Linux admin 2013-03-23 92756
97 부팅시 자동실행 명령어 스크립트, rc.local admin 2017-08-30 89425
96 윈도우XP 알면 정말 편한 숨겨진 기능 60가지 admin 2012-05-11 85558
95 서버이전시 고려할 사항들 admin 2011-12-13 83237
94 다운된 리눅스서버 응급복구 admin 2013-03-28 82184