본문

VCF(vCard) 파일 합치기, 분리하기, CSV로 변환하기

폰에있는 주소록을 컴퓨터로 저장할때 물론 일반 텍스트파일(CSV포함)이 많이 쓰이지만 이런 경우에 폰 제조사가 서로 다를경우 가끔 데이터를 불러오지 못하는 경우가 있다. 그래서 그나마 표준적으로 쓰이는 VCF파일을 사용하여 컴퓨터와 폰을 연결하는데, 이것도 문제가 있는것이 어떤 폰은 vcf파일을 분리해서 컴퓨터로 저장하고, 어떤 폰은 단일 vcf파일만 불러올 수 있다는 점이다. 특히나 이번 경우에는 노키아의 PC Suite에서 주소록 파일을 분리된 여러개의 vcf파일로 저장하고, 이것을 삼성의 KIES에서 불러오는 작업이었는데, KIES에서는 한번에 하나의 vcf파일만을 받아올 수 있는것이 문제가 되었다.


그래서 vcf파일을 합치는 파일을 찾아보았는데 이는 찾기 힘들었고 대신에 vcf파일을 분리하는 프로그램을 먼저 찾았다. vcf cutter라는 프로그램인데, vcf 파일 합치는 프로그램을 쓸일이 없어서 실제로 사용해보진 않았다  아래에 있는 vcf합치는 프로그램에서 나오는 결과를 이곳에서 시행해보면 분리가 되지 않던데 vCard 버전이 다르기 때문에 그런건가 추측하고 있다. 그래도 혹시나 하는 마음에서 올려본다. 프로그램 홈페이지는 이곳(다운로드는 VCFCutter.zip)이다.

그리고 vcf파일을 합치는 (무료)프로그램을 찾을 수 없어서 배치파일을 만들기로 했다. 폰에서 단일 vcf파일로 주소록을 추출해봤는데 구조를 보니 일반 vcf파일을 한줄씩 합쳐놓은 단순한 구조라서 프로그래밍 할필요도 없이 배치파일로 간단히 끝날것같았다. 그래서 만들고 아래의 배치파일을 첨부한다. 사용법은 다수의 vcf파일이 들어있는 폴더아이콘을 배치파일 아이콘 위애 드래그&드랍(끌어서 올려놓기) 해주면 된다. 배치파일과 vcf파일폴더를 동일한 폴더에 놓고 실행시키는것을 권장하며 결과 vcf파일은 배치파일의 위치에 result.vcf로 저장된다. 다음 게시물에서 아래 배치파일에 대한 설명을 적어놓을 예정이다.

vcfmerger_frontjang.bat



덧붙여서 이건 위키피디아에 링크가 올라와있길래 같이 적어놓는데, Online vCard Converter(vCard to LDIF/CSV Converter)를 사용한다면 온라인으로 vCard파일을 LDIF/CSV파일로 변환할수도 있다. 대부분의 폰을 위하든 프로그램을 위하든, 주소록 관리 프로그램에서는 CSV파일 또한 지원해 주므로 이를 사용하는 방법도 있다. 사이트 상에서는 애플 주소록을 모질라의 썬더버드(Thunderbird)에서 사용할 수 있는 용도로 사용할 수 있다고 밝히고 있다. 아무튼 php로 구성된 소스파일도 제공하니 사생활 침해에 대해 걱정인 경우 자신이 직접 실행할 수도 있다 (한글이 들어간 파일의 경우 아래를 참고하세요)


==============

12/07/25 추가, 16/02/17 수정(서버가 주거씀다..)
위 사이트에서 vcf -> csv 변환 후 파일이 깨져서 출력되는 경우에는 다음 사이트를 이용해주세요.(엑셀등에서 파일을 불러올때 인코딩 옵션을 지정해서 해결할 수 있으나, 그래도 문제가 발생할 경우 이 사이트를 사용해야 합니다) 문제 발생 시 알려주시면 바로 처리하겠습니다. http://host2.frontjang.info/vcfconvert/page.html


자세한 내용:

Online vCard Converter 사이트 상에서 한글 미지원 문제에 대한 댓글을 보고 소스를 파악한 결과, 내부적으로 처리는 원활하게 되지만 파일 출력 도중 인코딩을 변경하는 부분에서 문제가 발생하는것을 확인하였습니다. 이 프로그램에는 파일의 내용을 읽어와서 utf-8으로 변환하는 과정이 존재합니다. 하지만 한글 인코딩(euc-kr 혹은 cp949)에 대한 지원이 없었기 때문에 한글이 들어간 파일을 불러오고 이를 utf-8으로 변환하는 과정에서 문제가 생긴 것입니다. 

따라서 html 페이지에서 cp949에 대한 지원을 추가하였고, index.php에서의 fromText()의 $this->charset 부분에 else $this->charset="cp949"를 추가하였으며, utf-8 변환조건을 if (isset($this->charset) && $this->charset != 'UTF-8' && $this->charset != 'ISO-8859-1'&&$this->charset != 'CP949') 으로 변경하였습니다. 즉 한글 인코딩이 사용된 파일을 처리할 경우 내부적으로 인코딩을 변경하지 않은 채로 파일을 처리한다는 것입니다. 

인코딩을 변경하지 말아야 하는 이유는, ENCODING=QUOTED-PRINTABLE 으로 한글이 저장되는 경우에 오류가 발생하기 때문입니다. Contact_Vcard_Parse.php의 _decode_qp()에서 Quoted printable을 처리하는 과정에서 사용되는 quoted_printable_decode()의 결과로 문자가 기존의 8비트 표현방식이 사용되는데, 만약 이 전단계에서 이미 utf-8 표현방식으로 모든 파일이 변환되었다면 8비트 표현방식과 양립할 수 없어 파일이 깨진채로 출력되는 것입니다. 

테스트는 다음의 두가지 파일로 진행되었으며 테스트에서 검출되지 않은 문제가 발생할 수 있으니 결과파일을 반드시 확인해 주시기 바랍니다.

http://lemonstore.net/yj.vcf
http://lists.mindrot.org/pipermail/openssh-unix-dev/attachments/20000710/de0b89b1/attachment.vcf

저작자 표시 비영리 변경 금지
신고

댓글 22

  • 게스트 썸네일
    2011.10.02 23:59 신고

    혹시, csv를 LDIF로 바꾼는 프로그램은 없나요??

    • 게스트 썸네일
      2011.10.04 08:58 신고

      http://www.novell.com/coolsolutions/tools/13658.html
      여기에 있는 NcSv2Ldf가 원하시는 프로그램일것 같네요^^

  • 게스트 썸네일
    정말감사합니다.
    2012.01.04 22:02 신고

    정말감사합니다 번창하세요 하시는일

  • 게스트 썸네일
    감사합니다
    2012.01.17 02:31 신고

    ㅎ간단하게 배치 파이로 끝내버리셨네요...KIES 는 VCF 파일을 하나하나씩 밖에 못받아 들이더라고요;;; 구글 동기화시키려고 연락처 파일 올리려고 보니 CSV 는 연락처가 자동으로 입력이 안되고;; 아무튼 감사합니다^^ 수고 하세요

    • 게스트 썸네일
      2012.01.18 21:01 신고

      kies..프로그램은 무거운데 편리하지는 않더라구요-_- 새버전부터는 문자메시지도 저장안되고말이죠

  • 게스트 썸네일
    배치파일??
    2012.02.05 09:22 신고

    아무리 찾아도 어디 저장되는지 못찾겠습니다
    옵티머스 사용하다 겔럭시 넘어왔는데 이것때문에 2일간 고생중 ㅠㅠ

    • 게스트 썸네일
      2012.02.05 12:26 신고

      비스타 이상의 윈도우를 사용하실 경우 몇몇 폴더(C:\, 윈도폴더등)에서의 파일작업은 일정 수준의 권한을 요구하기 때문에 파일이 처리되더라도 저장되지 않을 수 있어요 다른 폴더에서 실행해보세요. 파일은 배치파일 위치에 result.vcf로 저장이 될거에요

  • 게스트 썸네일
    온라인안되
    2012.06.05 16:04 신고

    위에 온라인에서 된다고 하신거 본인은 직접 해 보셨는지.. 안되는데요..
    한글이 다 깨져 나오네요...
    포맷을 다 해 봤지만 한글이 다 깨져요 안됩니다.

    • 게스트 썸네일
      2012.07.25 10:57 신고

      링크가 있길래 올려봤는데 한글은 지원하지 않는문제가 있었네요.. 수정하겠습니다 의견 감사합니다~

  • 게스트 썸네일
    이방인
    2013.06.13 07:26 신고

    덕분에 부모님 주소록 잘 옮겨드렸습니다!! 감사합니다!! ^^

  • 게스트 썸네일
    고마워요
    2013.08.17 17:11 신고

    와우, 한글이 자꾸 깨져서 여기저기 찾아다녔는데, 여기 딱 있네요.
    정말 감사합니다!

  • 게스트 썸네일
    2013.09.26 17:49 신고

    감사합니다~~

  • 게스트 썸네일
    안되요
    2015.02.25 22:37 신고

    폴더이름을 배치파일이름이랑 같게하고 (.bat빼고요) 폴더를 배치파일위에다 드래그했는데 검은창이 픽뜨고 1초만에 사라지고 아무것도안바껴져요 윈도우 xp쓰고있어요

  • 게스트 썸네일
    굿굿
    2015.03.10 02:55 신고

    인코딩 때문에 당황했는데
    감사합니다~

    • 게스트 썸네일
      2015.11.03 19:39 신고

      글 밑에 인코딩 관련해서 작성해두기 잘했네요..
      참고로 서버는 더이상 운영되지 않습니다ㅠ

  • 게스트 썸네일
    헬프미!
    2016.01.05 19:02 신고

    vcf에서 csv로 변환하려는데 아래 http://host2.frontjang.info/vcfconvert/page.html
    사이트는 들어가지질 않고 온라인 vcard컨버터로 할씨 한글이 깨져나옵니다. 어떻게 해야되나요?

    hojae0597@naver.com

    • 게스트 썸네일
      2016.02.17 16:03 신고

      관리를 안했더니 서버가 없어졌어요!! 소스코드도요...
      지금으로써는 도움을 드리기 어려울것 같습니다ㅠ

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.

티스토리 툴바