[R] 한글 깨짐 해결방법 총정리

CHUL HYUN CHO
4 min readDec 13, 2020

--

Dacon 대회를 준비하면서 R로 한글이 들어간 csv를 다루다 그만 멘붕에 빠져버렸다.

이전에 이미 다른 데이터로 다루었던 경험이 있었기 때문에 고민않고 분석을 시작했는데 맙소사, 데이터를 불러오는 과정부터 막힌것이다.

구글링을 해보니 많은 사람들도 나와 같은 어려움을 겪었는데 해결방법을 총 정리해보고자 한다.

(1) R 프로그램에서 UTF-8 혹은 EUC-KR 설정하기

가장 보편적으로 해결할 수 있는 방법이다. 먼저 이것이 제대로 설정 되었는지 확인하는 것을 추천한다.

1. R 프로그램 상단바에서 Tools — Global Options 로 들어간다.
2. 위와 같은 창이 나오면 Code — Saving 으로 들어가 Default text encoding 에서 Change 버튼을 눌러준다.
3. 현재 나는 EUC-KR을 설정해놓은 상태라 표시가 되는데 UTF-8 이 아닌 EUC-KR 로 변경할 경우 하단에 show all encodings 를 누르면 보인다.
4. EUC-KR (혹은 UTF-8) 로 변경이 완료되었으면 Apply 버튼을 눌러 적용한다.

(2) 언어 설정을 초기화 후 다시 인코딩 불러오기

나는 2시간의 구글링 끝에 이 방법으로 해결하였다.

read_csv 로 불러온 뒤 확인해보니
한글로 된 셀이 다 깨져있는 것을 확인할 수 있다.

해결 방법은 상당히 간단하다.

Sys.getlocale()
Sys.setlocale("LC_ALL","C") # 강제 언어 삭제
data1 <- read.csv('.my_directory/example.csv', na.strings=NA, header = T, sep=",",encoding = "UTF-8") #file read 시, UTF-8로 인코딩
Sys.setlocale("LC_ALL","Korean") # 언어 다시 한글로

Sys.setlocale() 함수를 통해 언어를 삭제한 뒤 파일을 불러오고 설정하는 방법인데 정확한 이유는 모르겠지만 이 방법이 통한다.

한글로 정상적으로 읽힌 모습을 확인할 수 있다.

(3) 번외

위 방법으로도 안되는 경우가 있다.

그 중 첫번째는 읽어오는 파일이 UTF-8 인코딩이 아닌 ANSI 인 경우인데

원하는 파일의 메모장을 실행한 후 다른 이름으로 저장하기를 통해 인코딩 형식을 변경하면 해결할 수 있다.

나는 저정도로 바보가 아니라고 하는 독자도 있을탠데 위 3개 방법으로 해결이 되지 않은경우 최후의 수단으로 윈도우 계정명에 한글이 있는지 확인해보는 방법이 있다.

[ Windows 의 사용자 계정을 한글에서 영어로 변경하기 ](1) 시작  > (2) 제어판  > (3) 사용자 계정  > (4) 다른 계정 관리  > (5) 새 계정 만들기> (6) 계정 이름 지정 및 계정 유형 선택
1. 제어판을 실행한 후 사용자 계정 클릭. (화면이 다른 경우 오른쪽 상단의 보기 기준을 범주로 변경하면 된다.)
2. 사용자 계정을 클릭한다.
3. 다른 계정 관리
4. PC 설정에서 새 사용자 추가

위 방법을 통해 새로운 영어 이름 계정을 만들어 주도록 하자.

기존의 사용하던 계정의 이름을 바꾸게 되면 사용자 이름은 바뀌지만 User 폴더의 이름은 그대로이기 때문에

가급적 새로운 계정을 만들기를 추천한다.

--

--

CHUL HYUN CHO
CHUL HYUN CHO

Responses (1)