iOS와 윈도우의 한글 인코딩 방법이 달라서 생기는 현상이라는데 애플이나 윈도우나 이걸 고칠 생각이 없어보이니까 더 화나네요.
아이폰과 아이패드에서 PDF와 사진들을 OneDrive를 통해 PC와 동기화하고 주고받는데 한글 파일들은 다 난리가 나있으니 원
제발 누가 공론화좀 시켜주세요ㅜㅜㅜ
아이폰과 아이패드에서 PDF와 사진들을 OneDrive를 통해 PC와 동기화하고 주고받는데 한글 파일들은 다 난리가 나있으니 원
제발 누가 공론화좀 시켜주세요ㅜㅜㅜ
의지가 있었다면 벌써 고쳤겠죠 ㅎㅎ
드롭박스는 그걸 보정? 해준데요
유니코드 표준에 따르면 NFD와 NFC를 같은 글자로 취급해야 하는데, 윈도는 NFD를 제대로 구현조차 안 했다가 이제는 NFD와 NFC를 다른 글자로 취급하고 있죠.
애플도 별반 다르지 않습니다. 애플에서도 NFC와 NFD를 다른 문자로 취급해서 각종 스크립트에서 제대로 처리가 안 되는 꿀꿀함이 있습니다. (최근엔 나아진 것 같지만요.)
원래 유니코드에서 NFD 나온 건 NFC로 취급 못 하는 문자들을 대비하기 위한 건데, 애플은 무작정 NFD만 고집하는 형태지요. 다른 OS는 기본이 NFC 인데 애플만 NFD를 고집하는 형태로 표준만 운운하기도 애매하죠.
게다가 한글의 경우 NFD 방식은 너무 비효율적이라는 문제까지 있죠. (보통 한글 한 글자를 3byte로 표기하는데 반해 NFD는 글자에 따라 6 ~ 9byte 이상까지 올라가는 비효율까지 있습니다.)
윈도쪽에서 NFD 파일명 읽어들이는 구현이 기술적으로 어렵다거나 낭비가 심하다거나(이것도 윈도가 NFD로 기록할 필요는 없죠) 그런 문제도 아니고, 간단한 세벌식 자판의 오자조차 안 고치는 걸 보면 그냥 마소가 한글지원에 최소한의 의지도 없어서 그런 것이지요.
우선. 글 쓴 것 때문에 윈도우를 비호하는 쪽으로 보시는 것 같은데, 그렇진 않습니다.
표준을 안 지키고 있는 건 까이는 게 맞죠. (이상한건 윈도우 7인지 8인지 에서 NFD도 지원한 적이 있었는데, 그 뒤에 다시 빠졌더군요. 왜그런건지...)
여하튼 표준을 완전히 안 지키는건 맥도 마찬가지였고, NFC는 분명 비효율적인 면이 있습니다. 그래서 대개 NFD를 사실상 표준처럼 쓰고 있는 것이지요. (윈도우만 그런 게 아니라 Linux, Unix 등 대부분 다른 OS는 NFC가 기본입니다.) 맥만 고집 피우고 있는 것이지요. 그나마 APFS 가 나오면서 NFC 에 대한 지원이 늘어나 맥 내에서는 상황이 많이 나아지긴 했습니다. (그 전엔 쉘에서 touch "가나다" 로 파일을 만들고 find . -name "가나다" 하면 없는 그런 파일 없다는 말이 나왔죠.)
마지막으로 NFC, NFD 문제는 한글만의 문제는 아닙니다. 유럽쪽에서도 ä ö ü 같은 문자 에도 동일한 이슈들이 발생합니다.
그리고 그 외에도 타 OS 와 연동 시 파일 이름 깨짐 외에도 파일 이름 길이가 길어져 발생하는 문제 등등 생각보다 다양한 부분에 문제들이 발생하곤 합니다.
다시 말해 윈도에서 가령 읽어들일 때는 NFD여도 저장할 때는 NFC로 변환해도 상관 없기 때문에 바이트수가 많다는 비효율성(요즘 같은 SSD 세상에 텍스트용량 그것도 파일명에서 그 정도 차이는 성능 오차조차 되지 못합니다만)이란 건 윈도에 전혀 변명거리가 되지 않습니다. 윈도는 적은 용량으로 NFC로 저장해도 됩니다. 실제로 드랍박스는 NFD 파일명도 NFC로 변환해서 저장합니다. 윈도의 문제는 읽어들이기 단계에서 NFD를 제대로 인식 못 하는 거고 그건 용량 비효율성과 상관 없습니다. NFD를 지원한다고 해서 기존의 NTFS에 저장 비효율성이 발생하고 그런 것은 없습니다.
그리고 윈도에서 NFD를 제대로 지원한 적은 없습니다. 윈도7에서 위의 (1)에 해당하는 NFD 글자 표시는 되었지만 (2)에 해당하는 중복인식 처리가 안 되었습니다. 그래서 한 폴더 안에 같은 글자로 NFD 파일명과 NFC 파일명을 중복으로 생성할 수 있었죠.
1. 전 윈도우가 잘 하고 있단 소린 한 적 없습니다.
2. 윈도우에서 NFD를 제대로 지원한다고 모든 문제 해결이 아니라구요. 세상에 OS가 윈도우, OSX 밖에 없는 게 아니니까요. 파일 이름 길이 제한 같은건 Linux나 Unix쪽이 더 심각합니다. 이쪽은 byte단위로 따져서 더 문제가 많습니다. (NTFS는 그나마 unicode 기반으로 이름 길이 제한을 걸지만, Linux 등은 대개 byte 단위로 길이를 따져 이름 제한이 심해집니다.)
표준도 좋지만 NFD를 고집하는 건 OSX 밖에 없으니 그쪽을 보고 뭐라 하는 것도 있을 수 있단 거죠. NFD가 가진 장점보다 단점이 더 많아 보이니까요..
2. 파일시스템에서 NFD로 저장하는 OS(애플)만이 겪는 손해를, NFD를 읽어들이기만 하면 다른 OS도 겪을 것처럼 착오하고 계십니다. 그러나 둘은 구별해야 합니다. NFD를 읽어들여도 다른 파일시스템에서 NFC로 저장하면 글자수가 오히려 줄어들기 때문에, 파일명 글자수 제한 문제가 발생하지 않습니다. 설령 변환하지 않더라도, 현실에서 애플의 HFS+나 APFS는 파일명이 255바이트 제한이기 때문에 여기서 만들어진 NFD 파일명을 변환 없이 다른 *nix의 파일시스템에 그대로 저장하더라도 글자수 문제는 전혀 발생하지 않습니다.
다른 OS의 내부처리까지 NFD를 적용하는 것이 아니고, 단지 NFD 읽어들이는 표준 지원을 한다고 다른 OS에게 말씀하신 낭비나 비효율성 같은 문제가 전혀 발생하지 않습니다. 표준을 안 지키는 쪽에서는 그런 명분이나 변명거리가 있어서가 아니라, 그냥 이유 없이, 의지가 없어서 표준 구현을 게을리하고 있을 뿐입니다...
https://namocom.tistory.com/m/630
너무 고마우신 분입니다.