[macOS 한글 호환성 2편] 한글 깨짐 수정법

2019. 8. 29. 15:42

맥을 사용하면서 자주 접하게 될 한글 인코딩 호환성 문제

인코딩이 윈도와 다르다. 맥에서 만든 파일은 윈도에서 자음과 모음이 분리되어 보인다. 많은 사람들이 이를 자소 분리현상이라고 말한다. 또한, 일부 사이트는 한글이 깨지거나, 다운로드한 파일의 이름이 깨지는 경우가 많다.`

이번 글에서 다룰 것은 아니지만, 이 현상은 iOS에서도 나타나는 현상이다. 하지만 지금까지 iOS 사용자들은 이런 불편함을 느끼지 못했다. 파일 공유가 어려워서, 다운로드 받을 파일을 수정하는 경우는 많지만, 파일을 만드는 경우는 거의 없었다. 또한, 주요 클라우드 서비스는 파일을 업로드하면 자소 분리를 해결해주기 때문에 한글 인코딩 문제가 크게 다가오지 않았다. 그런데, 앞으로는 iOS 사용자들도 자주 겪게 될 것이다. 9월 중 정식 공개될 iOS 13에서는 File 앱을 통해 파일 관리를 쉽게 할 수 있다. 문제는 맥과 같은 인코딩을 사용하기 때문에 베타 사용자들 입장에서는 iOS 13에서 한글 처리에 문제가 생긴 것으로 느끼기도 할 수 있다는 것이다.

어쨌든, 이번 글을 통해 두 가지를 다룰 것이다.

  1. 업로드 하는 파일의 자소 분리 문제와 해결법
  2. 다운로드하는 파일의 텍스트 깨짐과 해결법

원인

이 현상의 원인은 인코딩이 달라서가 아니다. 윈도우에서 CP949라는 구식 인코딩 방식을 사용하기 때문이다. CP949는 EUC-KR의 확장 버전이라고 볼 수 있다. 이 인코딩 방식은 MS에서 초기 윈도우를 개발할 때, 한글 지원을 위해 만든 인코딩 방식이다. 따라서 현재는 개량된 인코딩이 많이 나와 있으며, 많은 운영체제에서 사용하지 않는 인코딩 방식이다(지원하지 않는다는 의미는 아니다). 요즘은 영어를 제외한 대부분의 문자를 Unicode로 인코딩한다. 영어도 특수한 문자를 표시하기 위해 유니코드로 인코딩하는 경우가 많다.

그럼에도 불구하고 윈도우는 여전히 기본 인코딩 방식이 CP949이다. 그래서 기본 텍스트 편집기로 작성한 파일이나 Visual Studio에서 작성한 코드들이 다른 운영체제에서 보면 깨져서 보인다. 특이하게도 한글 윈도우만 기본 인코딩이 CP949이다. 한글 지원을 위한 인코딩이니... 당연한 결과다. 영문 윈도우는 기본 인코딩이 CP949가 아니다. 영문 윈도우에서 작성한 한글 텍스트 문서들은 다른 운영체제에서도 잘 보인다는 얘기다.
영문 윈도우가 한글을 지원하지 않는 것도 아닌데, 한글 윈도우는 왜 기본 인코딩이 CP949인지 의문이다.

그래서, 일부 웹페이지들이 CP949로 인코딩되어 있다. 이런 사이트는 일부 운영체제에서 글자가 깨져서 보인다. 앞서 언급했듯이, 한글 윈도우만 기본 인코딩이 CP949이기 때문에 다른 언어의 윈도우나 다른 운영체제에서 작성한 웹페이지는 한글이 깨지지 않는다. 가끔은 웹페이지는 잘 보이지만, 파일을 다운로드하면 파일 이름이 깨져있기도 하는데, 이 또한 파일을 전송하는데 인코딩을 제대로 바꾸지 않아서 그렇다.

증상

글자가 깨진다는 것은 아래와 같은 증상을 말한다.

텍스트파일의 내용 중 한글이 보이지 않는다.
간혹 다운로드한 파일의 이름이 위와 같이 깨지기도 한다.

이 증상은 1편의 자소 분리 현상에 비할 수 없이 불편하다. 자소 분리 현상은 파일을 공유하면 다른 사용자가 겪게 되는 문제이면서도 인코딩을 바꾸지 않더라도 읽고 이해할 수는 있다.

하지만 위의 한글 깨짐 현상은 맥의 사용자가 직접 겪을 문제이고, 인코딩을 바꾸지 않는 한, 사용자는 읽고 이해하기 어렵다.

해결법

저 텍스트를 유니코드 인코딩으로 변환하면 된다.

이번에는 iconv명령을 사용한다. iconv -f cp949 -t UTF-8 "$f"

iconv 설치

iconv는 MacOS에 내장되어 있기 때문에 따로 설치하지 않아도 된다.
하지만 MacOS에 내장된 버전은 2009년에 공개된 버전이고, 충돌 문제가 있는 것 같아 brew에서 설치하는 것을 권한다.

터미널을 열고 brew install libiconv를 입력한다.

iconv는 MacOS에 내장되어 있기 때문에 brew에서 환경변수 PATH를 설정해주지 않는다.
대신 설치가 끝나면 brew에서 설치한 iconv를 환경변수 PATH를 설정하는 방법을 알려준다.

그래서 brew가 알려주는 과정을 따라하지 않으면 터미널에서 iconv를 실행해도 MacOS에 내장된 버전이 실행된다.
위 과정을 따라하지 않더라도 추후 brew에서 설치한 버전을 사용하려면 절대경로를 사용해서 실행해주면 된다.

Intel 기반 맥의 경우 /usr/local/opt/libiconv/bin/iconv를 사용하면 된다.
Apple Silicon 기반 맥의 경우 /opt/homebrew/bin/iconv를 사용하면 된다.

2021.11.17
iconv 설치 과정을 추가하였습니다.
Apple Silicon 기반 맥에서 변환 과정에 문제가 발생하는 것 같아 brew에서 다운로드 한 바이너리를 사용하도록 변경하였습니다.

Automator로 만들기

기존의 터미널은 파일을 직접 입력해야 한다. 하지만 오토메이터를 사용하면 Finder에서 파일을 선택하여 바로 실행할 수 있고, 또한 여러 파일을 자동화할 수도 있다.

실행 가능한 Workflow 파일 다운로드

깨진 한글 컨텐츠 수정_Apple_Silicon.workflow.zip
0.08MB

깨진 한글 컨텐츠 수정_Intel.workflow.zip
0.09MB

깨진 한글 파일명 수정_Apple_Silicon.workflow.zip
0.01MB

깨진 한글 파일명 수정_Intel.workflow.zip
0.01MB

2021.05.31
iconv가 인코딩을 인식하지 못하는 경우 파일 내용이 사라지는 문제 발생
iconv 변환에 문제가 없는지 확인 후 변환을 시도하도록 변경
변환 결과 알림 추가

2021.11.17
Apple Silicon 기반 맥에서 텍스트가 사라지는 문제가 발생하고 있습니다. 변환 전에 반드시 백업하시길 바랍니다.
이 문제는 Intel 기반 맥에서는 재현되지 않고 있기 때문에 제가 수정할 수 있는 부분이 아닙니다.
혹시 몰라 최신 버전의 iconv를 설치하는 과정도 추가하였으니 참고하시기 바랍니다.

Finder에서 사용할 수 있게 등록하기

  • 시스템 메뉴(애플 로고)
  • 시스템 환경설정(System Preferences)
  • Extentions
  • Finder
  • 방금 만든 Quick Action 선택

Quick Action에 등록된 서비스를 실행하면 아래처럼 파일 내용이 정상이 된다.

2021.05.31 파일 내용이 사라지는 문제 수정
2021.11.17 Apple Silicon 기반 맥에서 발생할 수 있는 문제 공지

  1. 행인 2020.09.11 16:57

    엄청난 팁이에요! 이 문제 때문에 미쳐버릴것 같던 때가 한두번이 아닙니다.
    정말 정말 감사합니다.

    • BlogIcon 본인해남 2021.01.06 14:45

      작동이 잘되시던가요? 저는 'AppleScript 실행' 동작에 오류가 발생함:.... 이라고 나오던데요...

  2. 본인해남 2021.01.06 14:51

    덕분에 많은 것을 이해했습니다. 감사한 마음입니다.
    말씀하신데로 오토메이터를 설치 실행해보았습니다만, 'AppleScript 실행' 동작에 오류가 발생함:. 이라고 나오던데요. 혹시 제가 무엇을 잘못했을까요?
    제가 한 것은: 파일 다운받아 압축 풀고 더블클릭하여 실행해서 확장프로그램의 파인더에 설치 및 체크는 잘되었는데요...

  3. 본인해남 2021.01.06 14:51

    덕분에 많은 것을 이해했습니다. 감사한 마음입니다.
    말씀하신데로 오토메이터를 설치 실행해보았습니다만, 'AppleScript 실행' 동작에 오류가 발생함:. 이라고 나오던데요. 혹시 제가 무엇을 잘못했을까요?
    제가 한 것은: 파일 다운받아 압축 풀고 더블클릭하여 실행해서 확장프로그램의 파인더에 설치 및 체크는 잘되었는데요...

    • BlogIcon 콜홍 2021.01.25 07:34 신고

      앗 휴대폰을 바꾸면서 알림을 받지 못해서 늦게 답장 해드립니다.

      정확히 어떤 상황에서 나오는 메시지인가요?
      메뉴바에서 메시지가 나타나는 것인가요? 아니면 새로운 창이 떠서 메시지가 나타나는 것인가요?
      그리고 더보기 버튼이나 자세히 보기 같은 버튼이 있을 것 같습니다. 있다면 그 내용도 알려주세요.

      다운로드 받은 파일 아이콘에 이름을 변경하고자 하는 파일의 아이콘을 드래그&드롭 해보세요. 똑같은 결과가 나타나나요?

  4. BlogIcon a 2021.01.21 00:25

    a

  5. YSE 2021.02.07 18:47

    감사합니다! 텍스트 파일을 받을 일이 많았는데 늘 한글이 깨져서 엄청 불편했었어요. 덕분에 잘 해결했습니다! (참고로 저는 아직 catalina 10.15.7버전입니다.)

  6. ... 2021.02.08 00:20

    혹시.. 천재 이신가요?.... 진짜 너무 감사합니다.... 이게 이렇게 빨리 해결되는거였다니.... ㅠㅠㅠㅠ

  7. 캄사 2021.03.15 20:49

    감사합니다.
    그런데 위의 실행 가능한 Workflow 파일 다운로드 에는 파일이 두개가 있는데
    "깨진 한글 txt 변경.workflow" 이 파일이 설명에 맞는건가요?

    "깨진 한글 파일 변경.workflow" 파일은 어떤 기능인가요?
    오토메이션에서 열아봤는데 2개가 모두 iconv를 사용하던데요.
    둘다 있어야 하는건가요 ?

    궁금합니다.

    • BlogIcon 콜홍 2021.03.16 13:16 신고

      깨진 한글 txt 변경.workflow
      는 파일 내옹 중에 한글이 깨진 경우에 사용하는 것이구요.

      깨진 한글 파일 변경.workflow
      는 파일 이름 중에 한글이 깨진 경우에 사용하는 프로그램입니다!

  8. guest 2021.04.07 05:44

    감사합니다
    전 이걸 사용했더니 어떤건 제대로 되고 어떤건 내용이 몽땅 사라져버렸어요 ㅠ_ㅠ 0바이트로 용량도 바뀌었고요. 머가 잘못되었을까요 ㅠ_ㅠ

    • BlogIcon ㅇㅇ 2021.05.20 08:21

      저도 똑같이 이렇게 됐어요ㅠㅠ

    • BlogIcon 콜홍 2021.05.31 11:19 신고

      iconv가 업데이트 되면서 일부 cp949 인코딩을 변환할 수 없는 문제가 생긴 것 같습니다.
      brew를 통해 최신 버전을 설치했지만 여전히 같은 문제가 발생하는군요.

      현재 파일을 업데이트해서 인코딩을 성공적으로 변환했는지 먼저 확인한 후에 파일 내용을 수정하도록 변경했습니다.

  9. 익명 2021.07.11 14:24

    비밀댓글입니다

  10. guest 2021.10.14 11:07

    깨진 한글 txt 변경 파일을 이용할 시 내용이 모두 사라지는 문제가 발생합니다.
    확인해주시면 감사하겠습니다.

    • BlogIcon 콜홍 2021.11.17 14:15 신고

      M1 맥에서 생기는 문제인 것 같습니다.
      아쉽게도 제가 M1맥을 사용하지 않아서 원인을 찾아드리기는 어려울 것 같습니다.

      오늘도 인텔맥에서 테스트 해봤으나 정상작동하는 것을 확인 하였습니다.

      다만 2017년 쯤 저도 비슷한 증상을 겪었는데, 그 때는 인코딩이 제대로 바뀌지 않아서 생기는 문제였고, iconv 업데이트 후 작동했던 것으로 기억하고 있습니다.

  11. m1 사용자 2021.10.15 22:34

    m1에서 txt 파일을 수정하면 파일 내용이 전부 사라지네요

  12. FIXME 2022.01.08 18:46

    2022.01.08 기준

    Apple Silicon 기반 맥에서 경로 관련 오류나오면
    해당 workflow를 automator로 열어서 소스코드의 경로를
    /opt/homebrew/opt/libiconv/bin/iconv로 수정해주면 됩니다.


  13. BlogIcon FIXME 2022.01.08 18:46

    2022.01.08 기준

    Apple Silicon 기반 맥에서 경로 관련 오류나오면
    해당 workflow를 automator로 열어서 소스코드의 경로를
    /opt/homebrew/opt/libiconv/bin/iconv로 수정해주면 됩니다.


  14. gyeom 2022.06.27 17:19

    wow

+ Recent posts