집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux에서 zip 파일의 압축을 풀 때 문자가 깨지는 문제를 해결하는 방법은 무엇입니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!