Linux에서 zip 파일을 압축 해제할 때 문자가 깨지는 문제에 대한 솔루션을 공유합니다.

黄舟
풀어 주다: 2017-06-02 10:25:19
원래의
2887명이 탐색했습니다.

이 글은 주로 linuxzip 파일 압축 해제잘못된 코드 문제에는 특정 참조 값이 있습니다. 관심 있는 친구가 참조할 수 있습니다.

이유

zip 형식은 인코딩 형식을 지정하지 않기 때문에 Windows에서 생성된 zip 파일은 인코딩은 GBK/GB2312 등입니다. 따라서 Linux의 기본 인코딩은 UTF8이므로 이러한 zip 파일은 Linux에서 압축을 풀 때 잘못된 문자를 갖게 됩니다.

해결책 1

7z를 사용하여 압축을 푸세요.

설치p7zip 및 convmv

# fedora
$ su -c 'yum install p7zip convmv'
# ubuntu
$ sudo apt-get install p7zip convmv
로그인 후 복사

압축을 풀려면 명령을 실행하세요.

# 使用7z解压缩
$ LANG=C 7za x your-zip-file.zip
# 递归转码
$ convmv -f GBK -t utf8 --notest -r .
로그인 후 복사

해결책 2

Windows에서 압축됨 파일은 다음과 같습니다. 시스템 기본 인코딩 중국어로 압축되었습니다. zip 파일에는 인코딩이 선언되어 있지 않기 때문에 리눅스에서 unzip은 일반적으로 기본 인코딩으로 압축이 풀려 중국어 파일명이 깨져 버립니다.

2005년에 누군가 이것을 버그로 보고했지만 info-zip 공식 웹사이트에는 인코딩 자동 인식이 계획에 포함되지 않았습니다. 아마도 그들은 이것이 문제라고 생각하지 않았을 것입니다. Sun은 N년 동안 Java에 존재했던 zip 인코딩 문제에 대해 동일한 접근 방식을 채택했습니다.

문제를 해결하는 방법은 2가지가 있습니다:

1. unzip 라인 명령을 통해 압축을 풀고 문자 집합

unzip -O CP936 xxx.zip (GBK, GB18030도 사용 가능)

흥미롭네요 흥미로운 점은 unzip 매뉴얼에는 이 옵션에 대한 설명이 없고, unzip --help에는 이 매개변수에 대한 간단한 설명이 있다는 점입니다.

2 변수 환경에서 unzip 매개변수를 지정하세요. 지정된 문자 집합으로 파일 표시 및 압축 해제

/etc/environment에 2줄 추가

UNZIP="-O CP936"
ZIPINFO="-O CP936"
로그인 후 복사

Gnome 데스크탑의 아카이브 파일 관리자(파일 롤러)가 unzip을 사용할 수 있도록 중국어를 정상적으로 압축 해제하려면 파일 롤러 자체에서 unzip으로 전달될 인코딩을 설정할 수 없습니다.

위 내용은 Linux에서 zip 파일을 압축 해제할 때 문자가 깨지는 문제에 대한 솔루션을 공유합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!