pandas

같은 CSV 파일이라도 encoding이 다른 이유

gggg21 2024. 11. 20. 11:36

같은 CSV 파일이라도 encoding이 다른 이유

CSV 파일을 열 때 encoding을 지정하는 이유는 파일 내에서 사용된 문자 인코딩 방식에 따라 다릅니다. 간단히 말해, encoding은 텍스트 데이터가 어떻게 저장되고 읽혀야 하는지를 알려주는 규칙입니다. 하지만 같은 CSV 파일이라도 encoding이 다를 수 있는 이유는 여러 가지가 있습니다. 이 블로그 글에서는 그 이유와 다양한 문자 인코딩 방식에 대해 설명하겠습니다.

1. 운영 체제에 따른 기본 인코딩 차이

파일을 열 때 사용하는 기본 인코딩 방식은 운영 체제(OS)에 따라 다를 수 있습니다. 예를 들어, 윈도우와 리눅스는 기본적으로 다른 문자 인코딩 방식을 사용합니다.

  • Windows: Windows는 기본적으로 CP949(또는 euc-kr)를 사용합니다. 이는 한글을 포함한 텍스트 파일에서 잘 작동하는 인코딩 방식입니다. 따라서 윈도우에서 생성된 CSV 파일은 보통 CP949로 인코딩되어 있을 가능성이 큽니다.
  • Linux/MacOS: 리눅스나 macOS에서는 기본적으로 UTF-8을 사용합니다. UTF-8은 전 세계의 문자들을 처리할 수 있는 유니버설한 인코딩 방식으로, 다양한 언어를 다루는 데 강점을 가지고 있습니다.

2. 파일을 저장한 프로그램의 설정

CSV 파일은 다양한 프로그램을 통해 저장할 수 있습니다. 이때 프로그램의 기본 인코딩 설정에 따라 파일이 다르게 저장될 수 있습니다. 예를 들어, Microsoft Excel에서 저장한 CSV 파일은 기본적으로 CP949 인코딩을 사용하지만, 구글 스프레드시트나 LibreOffice는 UTF-8을 기본 인코딩으로 사용합니다.

이 차이는 파일을 다른 프로그램에서 열 때 발생할 수 있는 인코딩 문제를 초래할 수 있습니다. 예를 들어, Excel에서 저장한 CSV 파일을 UTF-8로 읽으려 하면 한글이 깨지는 현상이 발생할 수 있습니다.

3. 다국어 환경에서의 인코딩 차이

국제적인 환경에서 다양한 언어를 사용하는 경우, 각 언어는 서로 다른 문자 인코딩 방식을 선호할 수 있습니다. 예를 들어, 일본에서는 Shift_JIS 인코딩이 널리 사용되고, 중국에서는 GB2312 또는 GBK가 주로 사용됩니다. 이로 인해, 같은 CSV 파일이라도 특정 지역에서 생성된 파일은 해당 지역의 문자 인코딩을 사용할 수 있습니다.

따라서 다국적 기업에서 파일을 공유할 때는 해당 파일을 어떻게 저장하고 열어야 할지 정확히 알지 못하면, 파일이 잘못 열려 문자 깨짐 현상이 발생할 수 있습니다.

4. 문자 인코딩의 역사적 배경

문자 인코딩 방식은 컴퓨터 역사에서 중요한 변화를 겪었습니다. 초기에 각 나라에서 사용하던 문자 코드가 달랐고, 이후 국제화와 컴퓨터 통신의 필요성에 따라 점차 표준화된 방식들이 등장했습니다.

  • ASCII: 1960년대에 등장한 ASCII는 7비트 인코딩으로 영어 문자와 몇 가지 기호를 포함한 제한적인 문자 집합만을 지원했습니다.
  • ISO-8859-1 (Latin-1): 영어 외의 유럽 언어를 지원하기 위해 개발된 8비트 인코딩 방식입니다.
  • UTF-8: Unicode 표준을 기반으로, 모든 문자를 표현할 수 있는 인코딩 방식으로 1990년대에 등장했습니다. UTF-8은 전 세계 문자 집합을 지원하므로 다양한 언어를 동시에 다룰 수 있어 국제화된 환경에서 널리 사용됩니다.

이러한 역사적 배경에 따라, 과거에 저장된 CSV 파일은 ASCII나 ISO-8859-1 등의 오래된 인코딩 방식을 사용할 수 있으며, 현재는 대부분 UTF-8로 저장되는 추세입니다.

5. 파일을 잘못 저장한 경우

때로는 파일을 저장하는 과정에서 실수로 잘못된 인코딩 방식이 선택될 수 있습니다. 예를 들어, UTF-8로 저장된 파일을 CP949로 저장하거나, ISO-8859-1로 잘못 저장하면, 텍스트가 깨지거나 읽을 수 없는 문자로 표시될 수 있습니다. 이런 경우에는 인코딩을 명시적으로 지정하여 파일을 다시 열어야 합니다.

6. 파일을 변환할 때 인코딩 문제

파일을 다룰 때, 예를 들어 텍스트 편집기나 프로그램을 사용해 인코딩을 변경할 수 있습니다. 하지만 이 과정에서 변환 오류가 발생하면 파일 내에 있는 일부 문자가 제대로 변환되지 않고 손상될 수 있습니다. 이럴 때는 원본 파일의 인코딩을 확인하고, 적절한 인코딩으로 변환한 후 사용해야 합니다.


결론

같은 CSV 파일이라도 encoding이 다른 이유는 주로 파일이 생성된 환경과 사용하는 프로그램에 따라 달라지기 때문입니다. 운영 체제, 프로그램, 파일을 저장할 때의 설정, 그리고 다국적 환경에서의 언어 차이 등이 그 원인입니다. 파일을 열 때 인코딩을 정확하게 지정하는 것이 중요하며, UTF-8, CP949, ISO-8859-1 등의 인코딩 방식을 이해하고 있어야 파일을 제대로 읽을 수 있습니다.

따라서 파일을 다룰 때 인코딩 오류를 피하려면, 파일이 어떤 환경에서 생성되었는지, 어떤 프로그램을 통해 저장되었는지 확인하고, 적절한 인코딩을 사용하여 파일을 열어야 합니다.