>  기사  >  운영 및 유지보수  >  Linux에서 zip 파일의 압축을 풀 때 잘못된 문자가 나타나면 어떻게 해야 합니까?

Linux에서 zip 파일의 압축을 풀 때 잘못된 문자가 나타나면 어떻게 해야 합니까?

Y2J
Y2J원래의
2017-05-24 14:16:062602검색

이 기사는 Linux에서 zip 파일 압축 해제 및 문자 깨짐 문제를 해결하는 방법을 주로 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.

원인

zip 형식은 인코딩 형식을 지정하지 않기 때문에 Windows에서 생성된 zip 파일의 인코딩은 GBK/GB2312이며, 등등, 따라서 Linux에서 기본 인코딩이 UTF8이기 때문에 Linux에서 압축을 풀 때 이러한 zip 파일이 왜곡되어 표시됩니다.

해결책 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에 2를 추가한다. /environment 줄



UNZIP="-O CP936"
ZIPINFO="-O CP936"

Gnome 데스크탑의 아카이브 파일 관리자(file-roller)가 unzip을 사용하여 중국어를 정상적으로 압축 해제할 수 있도록 하지만 file-roller 자체적으로 인코딩 전송을 압축 해제로 설정할 수 없습니다.

[관련 추천]

1.

Mysql 무료 동영상 튜토리얼

데이터 가져오기 시 innodb_index_stats에 대한 자세한 설명 테이블 기본 키 충돌 메시지 오류

예제 설명 mysql의 innodb_autoinc_lock_mode

4.

MySQL에서 새 사용자 권한을 추가하는 자세한 예

5.

Linux는 서버 네트워크 상태를 어떻게 감지합니까

위 내용은 Linux에서 zip 파일의 압축을 풀 때 잘못된 문자가 나타나면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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