>  기사  >  운영 및 유지보수  >  Linux에서 zip 파일의 압축을 풀 때 문자가 깨지는 문제를 해결하는 방법은 무엇입니까?

Linux에서 zip 파일의 압축을 풀 때 문자가 깨지는 문제를 해결하는 방법은 무엇입니까?

零下一度
零下一度원래의
2017-07-18 14:02:102246검색

zip 형식에는 인코딩 형식이 지정되어 있지 않기 때문에 Windows에서 생성된 zip 파일의 인코딩은 GBK/GB2312 등입니다. 따라서 이러한 zip 파일은 Linux에서 압축을 풀면 문자가 깨집니다. Linux에서의 기본 인코딩은 다음과 같기 때문입니다. UTF8.

현재 인터넷에는 unzip -O cp936 방법이 떠돌고 있는데, 일부 unzip에는 -O 옵션이 없습니다.

제가 사용하고 있는 버전인 unzip 6.0 debian 수정 버전에는 이 옵션이 있습니다

인코딩 문제로 인해 Linux에서 압축을 풀면 zip 파일의 중국어 파일이 깨져서 나타납니다

archlinux를 사용하는 경우 AUR을 사용하여 이 문제를 해결하려면 unzip-natspec을 설치하세요. 문제

이때 unzip xxx.zip을 사용하여 파일의 압축을 올바르게 풀고

파일 롤러 아카이브 관리자에서 실행할 수 있습니다. 중국어 이름이 여전히 깨져 있습니다. file-roller가 p7zip을 우선적으로 사용하기 때문이라고 합니다

p7zip 삭제 후 문제 해결

그런데 p7zip 패키지도 동시에 사용하고 싶은데 이 문제 해결 방법 아시는 분 계신가요?

여기서 코드를 다운받아서 공부하다보니 이런 논리가 나오네요

    /* give priority to 7z, unzip and zip that supports ZIP files better. */if ((strcmp (mime_type, "application/zip") == 0)|| (strcmp (mime_type, "application/x-cbz") == 0))
    {if (_g_program_is_available ("7z", check_command)) {return capabilities;
        }if (!_g_program_is_available ("unzip", check_command)) {
            capabilities |= FR_ARCHIVE_CAN_READ;
        }if (!_g_program_is_available ("zip", check_command)) {
            capabilities |= FR_ARCHIVE_CAN_WRITE;
        }return capabilities;
    }

이건 하드코딩되어 있어서 코드를 패치하는 것 외에는 좋은 해결책이 없는 것 같습니다.

최종 해결책은 비슷한 소프트웨어를 찾는 것이었습니다. AUR 패키지 p7zip-natspec에도 있습니다

이 패키지를 설치하면 문제가 완벽하게 해결될 것입니다. 이미 위의 방법을 사용하여 문제를 해결했기 때문에 이 방법은 시도하지 않겠습니다

위 내용은 Linux에서 zip 파일의 압축을 풀 때 문자가 깨지는 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.