파일을 분석해 본 결과 기본 zip 헤더에는 "muyp.txt" 라는 파일명이 저장되어 있고,
ZIP 포맷의 EXTRA 헤더 부분에 유니코드로 파일명이 저장되어 있네요.
( http://www.pkware.com/documents/casestudies/APPNOTE.TXT Info-ZIP Unicode Path Extra Field (0x7075) 항목 참고)
몇가지 압축 프로그램으로 테스트해보니 아직까지는 윈도우에서는 WINRAR 정도만 제대로 지원하는듯 합니다.
질문 님이 쓰신 글 :
: zip 파일 하나 업로드 합니다.
:
: 분명히 "대한민국.txt" 파일하나를 본문내용 없이 압축해서 만들어진 zip 파일인데
: C++ 빌더에 있는 TZipFile을 이용해서 보면 한글이 정상적으로 표시되지 않습니다.
: cp949, utf, cp878 여러가지 방법을 다 사용해 보았지만 안됩니다.
:
: 빌더님이 설명해주신 방법으로 해봐도 마찬가지로 안되는데 어떻게 해결해야할지 모르겠습니다.
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: std::auto_ptr <TZipFile> z (new TZipFile);
:
: z->Open(L"c:/test_r.zip", zmRead);
:
: for(int i = 0; i < z->FileCount; ++i)
: {
: std::auto_ptr <TEncoding> e (new TMBCSEncoding(0x3B5, 0, 0));
: Memo1->Lines->Add(e->GetString(z->FileInfo[i].FileName));
: }
: }
:
: 근데 신기하게 winrar로 보면 파일명이 제대로 보이거든요.
:
|