##acl +All:read #format wiki #language ko #pragma description 기초의학통계학 및 실험; = R에서 한글이 깨질 때 = == 인코딩문제? == 컴퓨터에서 문자는 (그리고 모든 것은) 2진수로 저장된다. 1. 컴퓨터가 처음 개발될 때 알파벳과 특수 문자를 포함하는 2^8^ = 256개의 문자를 모아 8자리 이진수로 표현했고, 1. 이를 [[WikiPedia:ASCII]] (American Standard Code for Information Interchange) 코드라고 한다. 1. 컴퓨터를 영어 문화권에서만 사용하면 ASCII 코드로 충분하고 아무 문제가 없다. 알파벳이 아닌 문자 (한/중/일/등등등)는 각자 나라에서 정해진 방식으로 문자를 저장했다. * 게다가 시대마다 인코딩이 조금씩 달라져 참 거시기하다. * 한글의 예를 들면 춘추전국시대를 지나 euc-kr 이라는 방식이 정부 표준으로 자리잡았으나, * Microsoft는 이를 개량한 cp949 라는 방식으로 Windows 95에 탑재하여 이후 cp949가 공인 표준보다 더 표준처럼 쓰이게 됨. 글로벌시대에 영어/한/중/일/태국/사우디/등등 여러 언어를 한 문서에 써야 할 경우가 종종 발생한다. * 기존의 나라별 문자 인코딩 방식은 이게 참 어렵다. * 지구상 모든 문자를 다 아우르는 universal code, 이름하야 unicode가 탄생한다. * 1991년 Launching 이후 더 많은 언어를 포함하며 꾸준히 업데이트 되는 unicode를, 그러나 Microsoft는 꾸준히 외면하다 Windows 10에서야 적용한다. R에서 한글이 깨지는 원인: * cp949로 저장한 한글을 unicode 방식으로 읽으려 하거나, (Windows 8이나 그 이전 Windows를 이용해서 자료를 저장했다.) * unicode 방식으로 저장한 한글을 cp949 방식으로 읽으려 하는 경우 (내 컴퓨터가 Windows 8이나 그 이전 Windows인데 자료는 Windows 10이나 macOS, Linux, Unix등에서 저장했다.) 해결방법 (다음 셋 중 하나를 한다): * 파일을 읽을 때 인코딩을 지정해준다. * read.spss() function을 부를 때 reencode=TRUE 옵션을 준다: read.spss("filename", reencode=TRUE) * read.csv() function은 이렇게 쓴다: read.csv("filename.csv", fileEncoding = "euc-kr") * [[http://rfriend.tistory.com/10|이 블로그]]를 참고하여 R의 인코딩 방법을 수정한다. * 한글을 쓰지 않는다. == Windows의 계정 이름이 한글인 경우? == 몇몇 영어권 windows software(예: RStudio)는 한글으로 된 파일 이름을 못 찾는다. * 파일 이름은 영어여도, 계정 이름이 한글이면 파일 경로상 한글이 존재하게 되고, 파일을 못 찾는다. 해결방법 (다음 넷 중 하나를 한다): * [[http://rfriend.tistory.com/306|이 블로그]]를 참고하여 계정 이름을 영어로 변환한다. * 영어로 된 계정 이름을 하나 만들고 거기서만 RStudio를 쓴다. * 데이타를 드라이브 최상위 폴더에 저장한다. (D:\english_folder_name\data_file) * Apple Mac이나 Linux를 사용한다. == macOS 인데도 한글이 깨진다? == * R이 영어폰트를 사용하게 세팅된 경우임. * [[https://blog.naver.com/twilight_teatime/221185918535|이 블로그]]를 참고하여 한글폰트를 사용하게 세팅한다. ----- <>