[STATA 14] 깨진 한글 Label 살리기

이번에는 한국노동패널(KLIPS)를 이용하여 깨진 한글 레이블을 살려보자.

이번에 사용할 명령어는 “unicode”를 지원하는 STATA 버전 14부터 가능한 것으로 알고 있으니… 참고하자.

우선 한국노동연구원에서 KLIPS 자료를 다운받아 압축을 풀면 아래와 같다.

압축을 푼 뒤 아무자료나 STATA로 열어보면 열심히 타이핑된 Label이 모두 깨져 있는 것을 확인 할 수 있다. 처음 이 화면을 보면 정말… 충격과 공포…가….ㅠ

자 이제 인코딩이란 것을 하여 깨진 글자를 한글로 다시 맞추는 일을 해보자.


Step 1.

우선 로딩된 화면이 아무것도 나타나지 않도록 “clear” 명령을 써준다.

clear

Step 2.

그 뒤 “cd” 명령어로 작업용 폴더를 설정해 준다

cd “/Users/CharlieShin/Desktop/KLIPS/1-18차 무응답대체 데이터_20170417”

Step 3.

변환 할 언어 인코딩 설정 (대부분의 한글이 깨지는 경우는 euc-kr 이다)

unicode encoding set euc-kr

Step 4.

이제 작업 폴더 안에 있는 모든 STATA 파일들 (.dta를 확장자로가진 모든 파일들)을 변환하도록 한다.

코드의 해석을 하자면 “모든 dta확장자를 가진 파일들을 euc-kr에서 utf-8형식으로 번역시켜라.” 정도?

unicode translate *.dta, transutf8

약간의 시간이 흐르면

위와 같은 메시지가 뜬다.

빨간 글씨는 없는게 좋긴하겠지만…가끔 번역이 안되는 레이블이 한두개씩 있나보다.

아무튼 번역 안되는 레이블을 제외하고는 모두 번역이 되어 있으니 이제 파일을 열어보자.

이럴땐

unicode translate *.dta, transutf8 invalid(ignore)

를 사용해주면 된다. Invalid한 레이블이 있을때 무시하라 라는 뜻이다.

아무튼 결과는 아래와 같다.

깔끔하게 번역 완료! ㅎ

  • Halim Yoon
    September 17, 2019 at 10:52 am

    안녕하세요! 이 댓글을 보실지 모르겠지만 질문이 있어 남깁니다ㅠㅠ

    위에서 말씀해주신대로 노동패널 1~20차 자료를 encoding을 하여 대부분은 한글 레이블 깨짐 현상이 해결되었는데, 10개 파일은 not translated because they contain unconvertable characters 이런 메시지가 떠서 여전히 레이블이 깨지더라구요.

    이런 경우에는 추가로 해결할 수 있는 방법이 없을까요?

    unicode translate *.dta, transutf8 invalid(ignore) 명령어는 10개 파일 내에서 변환이 되지 않는 변수들을 무시하라는 것이 아니라 위 10개 파일을 그대로 놔두라는 뜻이지요..?

    감사합니다!ㅠㅠ

    • Charlie Shin
      September 23, 2019 at 5:31 pm

      음.. 안녕하세요…
      제가 너무 늦게 확인한 것 같네요…
      실제로 help unicode_translate를 보시면 아래와 같이 설명이 되어 있습니다.

      ‘invalid(ignore) indicates that the invalid character simply be removed. “A@B” becomes “AB”.’

      즉, invalid(ignore)를 쓰는 경우 위 10개 파일을 그대로 놔두라는 뜻이 아니라… 그 파일내에 유효하지 않은 기호가 있으면 그 기호를 지워버리고 encoding하는 명령어로 저는 이해하고 있고… 실제로도 그렇게 작동했던 것으로 기억합니다.

      다만 위에 10개파일의 경우 encoding 자체가 틀릴 수 있을 것 같은데요…
      즉, euc-kr방식이 아닌 다른 방식으로 초기 인코딩이 되어 있어서…, 위의 명령어인 euc-kr -> utf-8 방식으로 인코딩에 실패한 것 같습니다.

      unicode encoding set euc-kr
      에서 ‘euc-kr’ 부분을 ‘ko’ 혹은 ‘ko_KR’로 바꾸어서 시도해보심이 어떠실런지요?

      제 기억에는 이 스타타에서 한글이 깨지는 문제가 스타타가 14버전인가부터 Window에서도 한글인코딩방식을 UTF-8로 사용하기 시작하면서 생긴 문제로 알고 있는데요…(기존에는 기본 윈도우 한글 인코딩방식은 EUC-KR을 쓴 것으로 알고 있음)
      만약 인코딩을 변경하고자하는 스타타 파일의 인코딩 방식이 EUC-KR방식이 아니라면 STEP 3 에서 부터 꼬이는 것이기때문에… 문제가 있을 수 있습니다.

      이래도 안된다면…

      1. 파일이 손상되었거나…

      2. R로 stata파일을 불러보셨을때 깨지는지 확인 해보시고 안깨지면 Export를 해보심을 추천드립니다.

      3. SPSS파일을 다운받아, STATA 또는 R에서 불러오기 해보심을 추천드립니다.

    • Jihee Lee
      October 15, 2019 at 9:14 pm

      너무 늦었지만 혹시나 도움이 될까하여 댓글 남겨봅니다.

      저도 이 게시글 따라해봐도 깨짐 현상이 계속 되어 오류 밑에 설명을 자세히 보았는데요.
      The safe way to proceed is to translate files first using unicode translate without the transutf8 option, and then retranslate any files that need it using unicode retranslate, transutf8.

      이렇게 쓰여있길래 이대로 코드를 좀 바꿨더니 label 깨짐 현상이 해결됐어요!

      unicode 부분 부터 바꾼 코드 적어드릴게요.

      unicode encoding set euc-kr
      unicode translate *.dta
      unicode retranslate *.dta, transutf8 invalid(ignore)

Leave Your Comment

Forgot Password