이 가이드에서는 어떤 문자 인코딩을 설명하고 명령 줄 도구를 사용하여 파일을 한 문자 인코딩에서 다른 인코딩으로 변환하는 몇 가지 예를 다룹니다. 그런 다음 마지막으로 Linux에서 여러 파일을 문자 집합 (문자 집합)에서 UTF-8 인코딩으로 변환하는 방법을 살펴 봅니다.
이미 염두에 두 셨겠지만, 컴퓨터는 문자, 숫자 또는 인간이 인식 할 수있는 비트를 제외하고는 다른 것을 이해하거나 저장하지 않습니다. 비트에는 \u003ccode\u003e 0 \u003c/ code\u003e 또는 \u003ccode\u003e 1 \u003c/ code\u003e, \u003ccode\u003e true \u003c/ code\u003e 또는 \u003ccode\u003e false \u003c/ code\u003e, \u003ccode\u003e의 두 가지 가능한 값만 있습니다. "> 예 또는 아니요 . "문자, 숫자, 이미지와 같은 다른 모든 것은 컴퓨터가 처리 할 수 있도록 비트로 표현되어야합니다.
간단히 말해서 문자 인코딩은 원시 0과 1을 실제 문자로 해석하는 방법을 컴퓨터에 알리는 방법입니다. 여기서 문자는 숫자 집합으로 표현됩니다. 파일에 텍스트를 입력 할 때 우리가 형성하는 단어와 문장은 서로 다른 문자로 만들어지고 문자는 문자 집합으로 구성됩니다.
ASCII, ANSI, 유니 코드와 같은 다양한 인코딩 체계가 있습니다. "다음은 ASCII 인코딩의 예입니다.
Character bits
A 01000001
B 01000010
Linux에서 iconv 명령 줄 도구는 텍스트를 한 인코딩 형식에서 다른 형식으로 변환하는 데 사용됩니다.
아래 예와 같이 mime 유형 문자열을 인쇄 할 수있는 \u003ccode\u003e -i \u003c/ code\u003e 또는 \u003ccode\u003e-mime \u003c/ code\u003e 플래그를 사용하여 file 명령을 사용하여 파일의 인코딩을 확인할 수 있습니다.
$ file -i Car.java
$ file -i CarDriver.java
iconv 사용 구문은 다음과 같습니다.
$ iconv option
$ iconv options -f from-encoding -t to-encoding inputfile(s) -o outputfile
여기서 \u003ccode\u003e -f \u003c/ code\u003e 또는 \u003ccode\u003e-from-code \u003c/ code\u003e는 입력 인코딩을 의미하고 \u003ccode\u003e -t \u003c/ code\u003e 또는 \u003ccode\u003e-to-encoding \u003c/ code\u003e은 "출력 인코딩.
알려진 코드화 된 모든 문자 세트를 나열하려면 아래 명령을 실행하십시오.
$ iconv -l
UTF-8에서 ASCII 인코딩으로 파일 변환
다음으로 한 인코딩 체계에서 다른 인코딩 체계로 변환하는 방법을 배웁니다. 아래 명령은 ISO-8859-1에서 UTF-8 인코딩으로 변환합니다.
다음 문자를 포함하는 \u003ccode\u003e input.file \u003c/ code\u003e이라는 파일을 고려하십시오.
� � � �
파일의 문자 인코딩을 확인한 다음 파일 내용을 살펴 보겠습니다. 거의 모든 문자를 ASCII 인코딩으로 변환 할 수 있습니다.
iconv 명령을 실행 한 후 다음과 같이 출력 파일의 내용과 문자의 새 인코딩을 확인합니다.
$ file -i input.file
$ cat input.file
$ iconv -f ISO-8859-1 -t UTF-8//TRANSLIT input.file -o out.file
$ cat out.file
$ file -i out.file
참고 : 인코딩에 \u003ccode\u003e/IGNORE \u003c/ code\u003e 문자열이 추가 된 경우 변환 할 수없는 문자와 변환 후 오류가 표시됩니다.
다시 말하지만, \u003ccode\u003e/TRANSLIT \u003c/ code\u003e 문자열이 위의 예 (ASCII/TRANSLIT)에서와 같이 인코딩에 추가되었다고 가정하면 변환되는 문자는 필요에 따라 가능한 경우 음역됩니다. 즉, 대상 문자 집합에서 문자를 나타낼 수없는 경우 하나 이상의 유사한 모양의 문자를 통해 근사화 할 수 있습니다.
따라서 음역 할 수없고 대상 문자 집합에없는 모든 문자는 출력에서 물음표 \u003ccode\u003e (?) \u003c/ code\u003e로 대체됩니다.
여러 파일을 UTF-8 인코딩으로 변환
주요 주제로 돌아가 디렉토리의 여러 파일 또는 모든 파일을 UTF-8 인코딩으로 변환하려면 다음과 같이 encoding.sh라는 작은 셸 스크립트를 작성할 수 있습니다.
#!/bin/bash
#enter input encoding here
FROM_ENCODING="value_here"
#output encoding(UTF-8)
TO_ENCODING="UTF-8"
#convert
CONVERT=" iconv -f $FROM_ENCODING -t $TO_ENCODING"
#loop to convert multiple files
for file in *.txt; do
$CONVERT "$file" -o "${file%.txt}.utf8.converted"
done
exit 0
파일을 저장 한 다음 스크립트를 실행 가능하게 만듭니다. 파일 (\u003ccode\u003e *. txt \u003c/ code\u003e)이있는 디렉토리에서 실행하십시오.
$ chmod +x encoding.sh
$ ./encoding.sh
중요 : 지정된 인코딩에서 다른 인코딩으로 여러 파일을 일반적으로 변환하는 데이 스크립트를 사용할 수도 있습니다. 단순히 \u003ccode\u003e FROM_ENCODING \u003c/ code\u003e 및 \u003ccode\u003e TO_ENCODING \u003c/ code\u003e 변수의 값을 가지고 놀 수 있습니다. "출력 파일 이름 을 잊어 버림
자세한 내용은 iconv 매뉴얼 페이지를 참조하십시오.
$ man iconv
이 가이드를 요약하면, 인코딩을 이해하고 한 문자 인코딩 체계에서 다른 문자 인코딩 체계로 변환하는 방법을 이해하는 것은 모든 컴퓨터 사용자가 텍스트를 처리 할 때 프로그래머에게 필요한 지식입니다.
마지막으로 질문이나 피드백이 있으면 아래의 댓글 섹션을 사용하여 연락 할 수 있습니다.
'IT > 리눅스마스터1급' 카테고리의 다른 글
RAID 구조 종류(RAID 0부터 10까지)와 구성 방식 자세한 설명 (0) | 2022.11.27 |
---|---|
ESXi에 Rocky Linux 설치 및 사용하기.(Desktop) (0) | 2022.11.27 |
[putty] 리눅스 운영체제 접속 프로그램 한글 입력이 안되고 점. 으로 표시될 때. (0) | 2022.11.09 |
Mac/Linux에서 ssh 접속 시 no matching key 문제 (0) | 2022.11.03 |
리눅스 명령어(ps,pgrep,kill,top) (0) | 2022.10.30 |