>php教程 >PHP开发 >Linux에서 파일 인코딩을 UTF-8로 변환하는 방법

Linux에서 파일 인코딩을 UTF-8로 변환하는 방법

高洛峰
高洛峰원래의
2016-11-16 09:13:071861검색

이 튜토리얼에서는 문자 인코딩의 의미를 설명하고 명령줄 도구를 사용하여 한 문자 인코딩을 사용하는 파일을 다른 인코딩으로 변환하는 몇 가지 예를 제공합니다. 마지막으로 Linux에서 다양한 문자 인코딩을 사용하는 파일을 UTF-8 인코딩으로 변환하는 방법을 살펴보겠습니다.

이진 데이터를 제외하고 컴퓨터는 문자, 숫자 또는 인간이 이해할 수 있는 모든 것을 이해하고 저장할 수 없다는 것을 이미 알고 계실 것입니다. 이진 비트에는 0 또는 1, 참 또는 거짓, 예 또는 아니오라는 두 가지 값만 있을 수 있습니다. 문자, 데이터, 이미지 등 그 밖의 모든 것은 컴퓨터 처리를 위해 바이너리 형식으로 표현되어야 합니다.

간단히 말하면 문자 인코딩은 원시 0과 1을 실제 문자로 해석하도록 컴퓨터에 지시하는 방법입니다. 이러한 문자 인코딩에서 문자는 숫자 문자열로 표시됩니다.

ASCII, ANCI, 유니코드 등 다양한 문자 인코딩 체계가 있습니다. 아래는 ASCII 인코딩의 예입니다.

字符            二进制 
A               01000001 
B               01000010

Linux에서는 명령줄 도구 iconv를 사용하여 한 인코딩을 사용하여 텍스트를 다른 인코딩으로 변환합니다.

file 명령을 사용하고 -i 또는 --mime 매개변수를 추가하면 파일의 문자 인코딩을 볼 수 있습니다. 이 매개변수를 사용하면 프로그램이 아래 예와 같이 문자열의 MIME을 출력할 수 있습니다. 메일 확장자) 데이터:

$ file -i Car.java 
$ file -i CarDriver.java

Linux에서 파일 인코딩을 UTF-8로 변환하는 방법

Linux에서 파일 인코딩 보기

iconv 도구는 다음과 같이 사용됩니다.

$ iconv option 
$ iconv options -f from-encoding -t to-encoding inputfile(s) -o outputfile

여기서 -f 또는 --from-code는 입력 인코딩을 나타내고, -t 또는 --to-encoding은 출력 인코딩을 지정합니다.

기존 인코딩된 문자 집합을 모두 나열하려면 다음 명령을 사용할 수 있습니다.

$ iconv -l

Linux에서 파일 인코딩을 UTF-8로 변환하는 방법

기존 인코딩된 문자 집합 모두 나열

ISO-8859-1 인코딩에서 UTF-8 인코딩으로 파일 변환

아래에서는 한 인코딩 구성표를 다른 인코딩 구성표로 변환하는 방법을 알아봅니다. 다음 명령은 ISO-8859-1 인코딩을 UTF-8 인코딩으로 변환합니다.

다음 문자가 포함된 input.file 파일을 고려해 보세요.

� � � �

먼저 이 파일의 인코딩을 확인한 다음 파일 콘텐츠를 살펴보세요. 마지막으로 모든 문자를 UTF-8 인코딩으로 변환할 수 있습니다.

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

Linux에서 파일 인코딩을 UTF-8로 변환하는 방법

Linux에서 ISO-8859-1을 UTF-8로 변환

참고: 출력 인코딩 뒤에 //IGNORE 문자가 추가되는 경우 문자열인 경우 변환할 수 없는 문자는 변환되지 않으며 변환 후 프로그램은 오류 메시지를 표시합니다.

글쎄, 위의 예에서 출력 인코딩(UTF-8//TRANSLIT) 뒤에 //TRANSLIT 문자열을 추가하면 변환할 문자는 형식 변환 원리를 사용하려고 시도합니다. 즉, 출력 인코딩 체계에서 문자를 표현할 수 없는 경우 유사한 모양의 문자로 대체됩니다.

또한 문자가 출력 인코딩에 없어 해독할 수 없는 경우 출력 파일에서 물음표 ?로 대체됩니다.

여러 파일을 UTF-8 인코딩으로 변환

주제로 돌아갑니다. 여러 파일 또는 특정 디렉터리의 모든 파일을 UTF-8 인코딩으로 변환하려면 다음과 같이 간단한 셸 스크립트를 작성하고 이름을 인코딩.sh로 지정할 수 있습니다.

#!/bin/bash 
### 将 values_here 替换为输入编码 
FROM_ENCODING="value_here" 
### 输出编码 (UTF-8) 
TO_ENCODING="UTF-8" 
### 转换命令 
CONVERT=" iconv  -f   $FROM_ENCODING  -t   $TO_ENCODING" 
### 使用循环转换多个文件 
for  file  in  *.txt; do 
$CONVERT   "$file"   -o  "${file%.txt}.utf8.converted" 
done 
exit 0

파일을 저장하고 실행 권한을 추가하십시오. 변환할 파일(*.txt)이 있는 디렉터리에서 이 스크립트를 실행하세요.

$ chmod  +x  encoding.sh 
$ ./encoding.sh

중요: 특정 문자 인코딩을 다른 코딩으로 변환하는 등 이 스크립트를 보다 일반적으로 만들 수도 있습니다. 이를 달성하려면 FROM_ENCODING 및 TO_ENCODING 변수의 값만 변경하면 됩니다. 출력 파일의 파일 이름을 "${file%.txt}.utf8.converted"로 변경하는 것을 잊지 마세요.

자세한 내용은 iconv 맨 페이지를 확인하세요.

$ man iconv

이 가이드를 요약하면 문자 인코딩의 개념을 이해하고 한 인코딩 방식을 다른 인코딩 방식으로 변환하는 방법을 아는 것은 컴퓨터 사용자가 텍스트를 처리할 때 숙지해야 하는 지식이며, 프로그래머는 더욱 그렇습니다.



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.