Home News Contact fang gang pan ing dong aaa
Search
­
수치 처리기인 컴퓨터에서 숫자(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으로 한글이 포함되어있는 파일을 압축할때 인코딩하는 옵션이 있나요..?

 

자료만 받아갈줄 아는 회원님들께, 개발자님들에게 최소한의 경우는 우리가 피드백으로 보답하는 겁니다

문제가 있던 없던 그동안 고생하신 것을 생각하여 피드백 작성을 부탁 드립니다
­

의견쓰기::  상업광고, 인신공격,비방, 욕설, 아주강한음담패설등의 코멘트는 예고없이 삭제될수 있습니다. 회원정리 게시판

첫번째 댓글을 남겨주세요!

List of Articles
번호 제목 글쓴이 날짜 조회 수
35 조린 ZorinOS Linux_15Ultimatex64 설치기 file + 3 바다3 06-22 43
34 MX 리눅스 18.3 설치 및 1일 사용기 file + 2 kungms 06-08 122
33 한국의 토종 OS 를 목표로 하는 No1.Linux 배포판입니다 file + 1 치즈맨 06-05 173
32 윈도7 서비스 종료와 국산 OS??? + 6 판치 05-26 164
31 Ubuntu 18.04의 독(Dock)을 Mac OS처럼 화면 아래에 보이게 하기 집그리는청년 05-22 65
» zip 압축 파일 및 텍스트 파일의 한글 깨짐 해결 방법 집그리는청년 05-22 32
29 우분투 grub에 배경화면을 넣어보자! 집그리는청년 05-22 27
28 GRUB의 대기 시간, 기본 부팅 순서 바꾸기 집그리는청년 05-22 31
27 Kubuntu 18.04 한글화 file + 1 ckk2580 05-20 49
26 하모니카 미디어 에디션 - HamoniKR-ME 64bit 1.3 file + 2 ckk2580 05-20 60
25 리눅스 정신나가게하는 소스코드입니다. + 2 누군가 03-25 299
24 리눅스 권한 상승 가능한 Dirty Sock 취약점 발견 file 엔냐 02-16 136
23 하모니카 커뮤니티 배포판 리눅스민트 19.1 Moordev Tessa MATE 64bit + 7 ckk2580 02-15 269
22 [정식버전] No1.Linux-2018.12.25-KDE-PLASMA5-SE.UP5.x86_64 + 4 ckk2580 02-15 226
21 저사양 유저 또는 군건더기 없는 운영체계를 원하는 분을 위한 루분투 file + 11 System32 02-04 505
20 리눅스 배포판 순위 사이트 + 13 판치 01-13 1176
19 우분투에서 한글 입력기 비교 사용기 (ibus, fcitx, uim) + 2 kungms 12-31 325
18 2019년 리눅스에 기대해도 좋을 것 file + 15 anonymous 12-07 615
17 Linux Mint LMDE 3 설치 가이드 + 6 VenusGirl 09-11 545
16 Linux Mint 19 설치 가이드 + 7 VenusGirl 09-10 512

★ 오매 운영을 위한 후원안내 ★

- 오매 운영에 공감하는 분의

- 후원을 기다리고 있습니다

- 지속적인 오매 유지,보수, 관리를

- 위하여 사용됩니다.

- 변함 없는 오매가 되도록

- 노력하겠습니다

- 고맙습니다.

후원혜택

안녕하세요.

오매 후원을 해주신분들에게는

자유로운 활동을 위한 등급 조정

2년동안 활동 제한이 없습니다.

고맙습니다.