CN104199867A - 一种解决文件名乱码问题的zip文件解压缩方法 - Google Patents

一种解决文件名乱码问题的zip文件解压缩方法 Download PDF

Info

Publication number
CN104199867A
CN104199867A CN201410406083.4A CN201410406083A CN104199867A CN 104199867 A CN104199867 A CN 104199867A CN 201410406083 A CN201410406083 A CN 201410406083A CN 104199867 A CN104199867 A CN 104199867A
Authority
CN
China
Prior art keywords
filename
file
code
data
byte
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410406083.4A
Other languages
English (en)
Other versions
CN104199867B (zh
Inventor
刘汇丹
诺明花
吴健
芮建武
贺也平
刘奎恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201410406083.4A priority Critical patent/CN104199867B/zh
Publication of CN104199867A publication Critical patent/CN104199867A/zh
Application granted granted Critical
Publication of CN104199867B publication Critical patent/CN104199867B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明提供一种解决文件名乱码问题的ZIP文件解压缩方法,包括以下步骤:根据当前操作系统使用的字符集编码确定目标编码;提取一文件名;根据提取的文件名确定源编码;如源编码与目标编码不相同,则将符合源编码的编码规则的文件名转换为符合目标编码的编码规则的文件名;相同则不转换;使用经转换处理之后的文件名在一存储模块中创建一文件;从ZIP文件中的压缩文件内容源数据区提取文件数据并写入到创建的文件;再重复上述直至ZIP文件中的所有文件都被解压缩完毕。通过对文件名做编码转换,可以将压缩包中的文件的文件名转换为符合目标编码的编码规则的文件名,解决了解压缩ZIP文件时存在的乱码问题。

Description

一种解决文件名乱码问题的ZIP文件解压缩方法
技术领域
本发明涉及计算机信息处理领域,更具体地说,涉及一种解决文件名乱码问题的ZIP文件解压缩方法。
背景技术
ZIP格式是一种流行的数据压缩和文档储存的文件格式,通常使用后缀名“.zip”,它的MIME格式为application/zip。除了常见的“.zip”扩展名以外,也还有很多常见的文件使用ZIP压缩格式,例如以“.jar”、“.war”、“.docx”、“.xlxs”、“.pptx”、“.odt”、“.ods”、“.odp”等为扩展名的文件。
目前,ZIP格式属于几种主流的压缩格式之一,其竞争者包括RAR格式以及开放源码的7z格式。从性能上比较,RAR及7z格式比ZIP格式压缩率较高,而7-Zip由于提供了免费的压缩工具而逐渐在更多的领域得到应用。Microsoft从Windows ME操作系统开始内置对ZIP格式的支持,即使用户的电脑上没有安装解压缩软件,也能打开和制作ZIP格式的压缩文件,MAC OS X和Linux操作系统也对ZIP格式提供了支持。
ZIP是一种分别压缩每个文件的文件格式。分别压缩文件允许不必读取另外的数据而检索独立的文件;理论上,这种格式允许对不同的文件使用不同的算法。不管用何种方法,对这种格式的一个基本原理是,在包含很多小文件的时候,以每个小文件分别存档会明显地比压缩成一个独立的文件占据的存储空间要大。
ZIP文件格式支持多种压缩算法,例如Shrinking方法、Reducing系列方法、Imploding方法、Tokenizing方法、Deflate方法、增强的Deflate方法、PKWARE Data Compression LibraryImploding方法、Bzip2方法等。ZIP的文件格式说明指出文件可以不经压缩或者使用不同的压缩方法来存储。然而,在实际上,ZIP几乎总是在使用卡茨(Katz)的Deflate方法。
ZIP支持基于对称加密系统的一个简单的密码,并支持分卷压缩。
ZIP文件的结构如下表所示,主要可以分为三大部分:压缩文件内容源数据区、中央目录区、中央目录结束标识区。
压缩文件内容源数据区用于记录被压缩的所有文件的内容数据,其数据组织结构是从前向后依次存储每个文件的数据,对于每个文件都由文件头(file header)、文件数据(file data)、数据描述(data descriptor)三部分组成。
文件标头用于存储与文件本身相关的各种信息,其结构如下表所示。
紧接着是文件数据,其中存储以相应的压缩算法压缩之后的文件内容。
紧接着是数据描述符,用于标识该文件压缩结束,该结构只有在相应的文件标头中通用位标记字段的第3位设为1时才会出现,紧接在压缩文件源数据后。数据描述符只用在不能对输出的ZIP文件进行检索时使用。例如:在一个不能检索的驱动器(如:磁带机上)上的ZIP文件中,如果是磁盘上的ZIP文件一般没有这个数据描述符。
中央目录区用于记录被压缩文件的原始目录结构信息。对于待压缩的目录而言,每一个子目录(或文件)对应一个中央目录文件标头,记录该目录的描述信息,其结构如下表所示。
中央目录结束标识区存在于整个归档包的结尾,用于标记中央目录的结束,其结构如下表所示。
在中央目录文件标头的第46字节处开始的一段数据,是该中央目录文件标头对应的被压缩文件在生成该压缩包的操作系统上的原始文件名,一般采用与原操作系统本地化环境(Locale)相一致的字符集和编码表示。
不同的操作系统版本可能使用不同的编码字符集。Windows操作系统采用一种称为代码页(CodePage)的方式指定系统当前所属的使用区域和语言,例如,Windows7操作系统的简体中文版使用名称为“CP936”的代码页,对应的编码字符集是GB系列编码字符集(GB2312、GBK、GB18030),而在目标市场为台湾的繁体中文版使用名称为“CP950”代码页,则对应Big5的编码字符集。Linux操作系统目前大多使用UTF-8系列的本地化环境(Locale),对应的字符集编码是UTF-8。
GB2312采用单字节编码兼容ASCII字符集,采用双字节对汉字进行编码,在8位的系统上,两个字节的范围均为0xA1~0xFE。由于编码空间的限制,GB2312仅收录了6763个常用汉字。虽然已经基本覆盖了日常使用的现代汉字,但是随着应用的深入,6763个汉字已经无法满足应用需要,特别是无法满足人名、地名以及古籍整理等用字需要。
GBK内码规范是由全国信息标准化技术委员会在《汉字扩展内码规范》中提出的一种两字节代码体系。它在GB2312内码系统的基础上进行了扩充,以0x8140~0xFEFE的矩形区域,剔除0xXX7F一条线的两字节表示CJK汉字字汇及有关的符号,并有所扩充。其中第一字节的范围为0x81~0xFE,第二字节的范围是0x40~0x7E或0x80~0xFE。
GB18030沿用GB/GBK的编码体系,并在GBK的基础上进一步进行了扩充,增加了四字节部分的编码,从而使得码位空间大大扩充,上升到150多万个。GB18030编码标准的主要目的是为了解决一些生、偏、难字的问题,以及适应出版、邮政、户政、金融、地理信息系统等迫切需要的人名、地名用字问题,另外一个目的就是推动我国少数民族语言信息化发展的步伐,为少数民族语言的信息化提供标准和助力。
GB18030-2000标准采用单字节、双字节和四字节三种方式对字符编码。单字节部分采用使用0x00至0x80码位,兼容ASCII。双字节部分采用两个字节表示一个字符,其首字节码位从0x81~0xFE,尾字节码位分别是0x40~0x7E和0x80~0xFE,兼容GBK和GB2312。四字节部分第一、三字节仍为0x81~0xFE,第二、四字节采用0x30到0x39作为对双字节编码扩充的后缀,这样扩充的四字节编码,其范围为0x81308130到0xFE39FE39。GB18030-2000码位范围分配如下表所示。
GB2312和GBK编码仅收录了英文字母、数字、汉字、俄文字母等字符,因此,采用GB2312和GBK编码是无法表示全球大多数民族文字如蒙古语、藏语、维吾尔语、泰语、马来语、韩语等语言的文字。GB18030从字汇上是兼容Unicode国际标准的。
Unicode是Unicode联盟制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。在Unicode中:汉字“字”对应的数字是23383(十进制),十六进制表示为5B57。在Unicode中,有很多方式将数字23383表示成程序中的数据,包括:UTF-8、UTF-16、UTF-32等。例如,“汉字”对应的码点是U+6C49和U+5B57,而编码的程序数据是:
●char data_utf8[]={0xE6,0xB1,0x89,0xE5,0xAD,0x97};//UTF-8编码
●char16_t data_utf16[]={0x6C49,0x5B57};//UTF-16编码
●char32_t data_utf32[]={0x00006C49,0x00005B57};//UTF-32编码
UTF-8以字节为单位对Unicode进行编码。从Unicode码点到UTF-8的编码方式如下表所示。
Unicode编码(十六进制) UTF‐8字节流(二进制)
000000‐00007F 0xxxxxxx
000080‐0007FF 110xxxxx 10xxxxxx
000800‐00FFFF 1110xxxx 10xxxxxx 10xxxxxx
010000‐10FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
由于ZIP格式的压缩文件中存储的文件名采用与原操作系统本地化环境(Locale)相一致的字符集和编码表示,如果这个ZIP文件时从其它的计算机上传送过来的,当前操作系统的本地化环境(Locale)有可能与原操作系统不同。因此,在不同系列的操作系统之间传送ZIP文件时,容易出现文件名乱码的问题,给信息交流带来不便,用户体验较差。例如,在Linux操作系统上打开一个由Windows7简体中文版上的压缩软件生成的ZIP格式文件,将可能产生文件名乱码问题。图1a和图1b显示了这样的一个实例,图1a显示了一个在Windows7操作系统上制作的压缩文件“QQCourseSlides3rdEd.zip”中的内容。图1b显示了此文件在Linux操作系统上打开之后的结果,其中五个文件名中包含汉字的PDF文件的文件名全都显示为乱码。
以一种简化的观点,从ZIP压缩文件中提取(解压)一个文件的过程大体包括:首先,从中央目录区提取“文件名”,并以该文件名创建文件;其次,中央目录区提取本地文件header的相对偏移量,并根据此偏移量找到该文件压缩之后的数据在“压缩文件内容源数据区”中的位置,并从此位置提取该文件对应的文件标头数据;最后,从紧接着的文件标头的文件数据区中提取文件内容数据,并将文件内容数据写入到新创建的文件中。
发明内容
本发明的目的是针对现有的ZIP格式文件解压缩时可能产生的乱码问题,提供一种ZIP格式文件解压缩方法,从而提升用户体验。
上述解决文件名乱码问题的ZIP文件解压缩方法,包括以下步骤:
A.通过一系统信息检测模块根据当前操作系统使用的字符集编码确定目标编码;
B.通过一解压缩模块从ZIP文件中的中央目录区提取一文件名;
C.通过一编码识别模块根据提取的文件名确定源编码,如果文件名符合UTF-8的编码规则,则认为源编码是UTF-8编码;如果文件名符合GB18030的编码规则,则认为是源编码是GB18030编码;否则,将目标编码作为源编码;
D.如源编码与目标编码不相同,通过一编码转换模块将符合源编码的编码规则的文件名转换为符合目标编码的编码规则的文件名;如源编码与目标编码相同则不转换;
E.通过一解压缩模块使用经步骤D处理之后的文件名在一存储模块中创建一文件;
F.通过解压缩模块从ZIP文件中的压缩文件内容源数据区提取文件数据并写入到由步骤E创建的文件;
G.重复步骤B~步骤F直至ZIP文件中的所有文件都被解压缩完毕。
进一步地,所述步骤A中确定目标编码的依据是:如当前操作系统是Windows操作系统并且本地化环境是CP936,则目标编码为GB18030编码;如当前操作系统是Unix、Linux、Android、iOS及Mac OS之一的操作系统,则目标编码为UTF-8编码。
进一步地,步骤C中所述文件名符合UTF-8的编码规则是指存储所述文件名的字节数组中的数据可以拆分为下面四种数据中的一种或多种的组合:
1)第一字节数据的二进制表示中首位是0;
2)第一字节数据的二进制表示中前三位是110,第二字节数据的二进制表示中前两位是10;
3)第一字节数据的二进制表示中前四位是1110,第二、三字节数据的二进制表示中前两位是10;
4)第一字节数据的二进制表示中前五位是11110,第二、三、四字节数据的二进制表示中前两位是10。
进一步地,所述文件名符合GB18030的编码规则是指存储所述文件名的字节数组中的数据可以分解为下面三种数据中的一种或种的组合:
1)第一字节数据在0x00~0x80范围内;
2)第一字节数据在0x81~0xFE范围内,第二字节数据在0x40~0x7E或者0x80~0xFE范围内;
3)第一字节和第三字节数据在0x81~0xFE范围内,第二字节和第四数据在0x30~0x39范围内。
进一步地,步骤D中所述编码转换模块用以调用当前操作系统或其它编码转换软件及通过自行采用查询编码对照表的方法实现文件名从源编码向目标编码的转换;源编码或目标编码为GB18030的编码转换模块或编码对照表不可用时,则降级使用GBK的编码转换模块或编码对照表。
通过采取上述方法,在解压缩ZIP文件时,由于使用了字符集编码检测与转换模块,在必要的情况下,可以将符合源编码的编码规则的文件名转换为符合目标编码的编码规则的文件名,再以符合目标编码编码规则的文件名创建文件,从而解决了解压缩ZIP文件时存在的文件名乱码问题,提升了用户体验。
附图说明
图1a为本发明背景技术及实施例中一个在Windows7操作系统上制作的压缩文件“QQCourseSlides3rdEd.zip”的内容显示页面。
图1b为本发明背景技术及实施例中压缩文件“QQCourseSlides3rdEd.zip”在Linux操作系统上打开的内容显示页面。
图2为本发明实施例的实施流程图。
图3为本发明实施例一在Window7操作系统上对QQCourseSlides3rdEd.zip解压缩得到的文件显示页面。
图4为本发明实施例二在Linux操作系统上对QQCourseSlides3rdEd.zip解压缩得到的文件显示页面。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例一:Windows7操作系统上对压缩文件QQCourseSlides3rdEd.zip的解压缩过程
对于图1a中所示的在Windows7操作系统上制作的压缩文件QQCourseSlides3rdEd.zip,结合图2所示,步骤300系统信息检测模块检测用户当前使用的操作系统是Windows7简体中文版,因此,将目标编码设置为GB18030。步骤302解压缩模块从QQCourseSlides3rdEd.zip文件的中央目录区中提取到文件名为“Chapter1.odp”,其对应的内存中的字节数组中的数据的十六进制表示序列为“43 68 61 70 74 65 72 31 2E 6F 64 70”。步骤304编码识别从前向后模块扫描该字节数组,发现所有字节数据的二进制表示中首位是0(16进制表示中首位小于8等同于二进制表示中首位是0),因此该文件名符合UTF-8的编码规则,将源编码设置为UTF-8编码。步骤306判断源编码与目标编码不同,因此步骤310编码转换模块将文件名从UTF-8编码转换为GB18030编码,因两种编码对英文及英文的标点符合是兼容的,转换之后的字节数组的十六进制表示仍然为“43 68 61 70 74 65 72 31 2E 6F 64 70”。步骤312解压缩模块以转换之后的文件名“Chapter1.odp”在存储模块,例如磁盘上创建文件。步骤314解压缩模块从ZIP文件的中央目录区解析出该文件的文件标头的相对偏移量,并找到实际存在该文件压缩后内容数据的区域,提取数据并写入到步骤312在磁盘上创建的文件“Chapter1.odp”中。步骤316判断还有文件未被解压,因此重复步骤302至步骤314依次解压出文件“Chapter2.odp”、“Chapter3.odp”、“Chapter4.odp”、“Chapter5.odp”。然后,步骤316判断仍然有文件未被解压,因此继续回到步骤302,此时解压缩模块从ZIP文件的中央目录去提取到文件名“第1章内容演示文稿.pdf”,其对应的内存中的字节数组中的数据的十六进制表示序列为“B5 DA 31D5 C2 C4 DA C8 DD D1 DD CA BE CE C4 B8 E5 2E 70 64 66”。编码识别模块判断从前向后扫描,第一个字节的二进制表示是“10101001”,不符合UTF-8编码四种数据的任何一种。编码识别模块继续判断,发现“B5DA”符合GB18030双字节字符的数据范围,“31”符合GB18030单字节字符的数据范围,继续扫描直至文件名结尾,最终判断文件名符合GB18030的编码规则。因此,步骤306判断源编码与目标编码相同,步骤308不对文件名做编码转换。步骤312解压缩模块以GB18030编码的文件名创建磁盘文件。步骤314解压缩模块从ZIP文件的中央目录区解析出该文件的文件标头的相对偏移量,并找到实际存在该文件压缩后内容数据的区域,提取数据并写入到步骤312在磁盘上创建的文件“第1章内容演示文稿.pdf”中。步骤316判断还有文件未被解压,因此重复步骤302至步骤314依次解压出文件“第2章内容演示文稿.pdf”、“第3章内容演示文稿.pdf”、“第4章内容演示文稿.pdf”、“第5章内容演示文稿.pdf”。步骤316判断所有文件已经全部解压缩完毕,步骤318结束对QQCourseSlides3rdEd.zip的解压缩过程。图3显示了在Window7操作系统上对QQCourseSlides3rdEd.zip解压缩得到的文件。
实施例二:Linux操作系统上对压缩文件QQCourseSlides3rdEd.zip的解压缩过程
对于图1a中所示的在Linux操作系统上制作的压缩文件QQCourseSlides3rdEd.zip,参照图2,步骤300系统信息检测模块检测用户当前使用的操作系统是Linux,因此,将目标编码设置为UTF-8。步骤302解压缩模块从QQCourseSlides3rdEd.zip文件的中央目录区中提取到文件名为“Chapter1.odp”,其对应的内存中的字节数组中的数据的十六进制表示序列为“43 6861 70 74 65 72 31 2E 6F 64 70”。步骤304编码识别从前向后模块扫描该字节数组,发现所有字节数据的二进制表示中首位是0(16进制表示中首位小于8等同于二进制表示中首位是0),因此该文件名符合UTF-8的编码规则,将源编码设置为UTF-8编码。步骤306判断源编码与目标编码相同,因此步骤308不做编码转换。步骤312解压缩模块以UTF-8编码的文件名“Chapter1.odp”在存储模块,例如磁盘上创建文件。步骤314解压缩模块从ZIP文件的中央目录区解析出该文件的文件标头的相对偏移量,并找到实际存在该文件压缩后内容数据的区域,提取数据并写入到步骤312在磁盘上创建的文件“Chapter1.odp”中。步骤316判断还有文件未被解压,因此重复步骤302至步骤314依次解压出文件“Chapter2.odp”、“Chapter3.odp”、“Chapter4.odp”、“Chapter5.odp”。然后,步骤316判断仍然有文件未被解压,因此继续回到步骤302,此时解压缩模块从ZIP文件的中央目录去提取到文件名“第1章内容演示文稿.pdf”,其对应的内存中的字节数组中的数据的十六进制表示序列为“B5 DA 31D5 C2 C4 DA C8 DD D1 DD CA BE CE C4 B8 E5 2E 70 64 66”。编码识别模块判断从前向后扫描,第一个字节的二进制表示是“10101001”,不符合UTF-8编码四种数据的任何一种。编码识别模块继续判断,发现“B5DA”符合GB18030双字节字符的数据范围,“31”符合GB18030单字节字符的数据范围,继续扫描直至文件名结尾,最终判断文件名符合GB18030的编码规则。因此,步骤306判断源编码与目标编码不同,步骤310编码转换模块将文件名从GB18030转换为UTF-8编码,转换后的文件名的字节数组的十六进制表示序列为“E7 ACAC 31 E7 AB A0 E5 86 85 E5 AE B9 E6 BC 94 E7 A4 BA E6 96 87 E7 A8 BF 2E 70 64 66”。步骤312解压缩模块以UTF-8编码的文件名创建磁盘文件。步骤314解压缩模块从ZIP文件的中央目录区解析出该文件的文件标头的相对偏移量,并找到实际存在该文件压缩后内容数据的区域,提取数据并写入到步骤312在磁盘上创建的文件“第1章内容演示文稿.pdf”中。步骤316判断还有文件未被解压,因此重复步骤302至步骤314依次解压出文件“第2章内容演示文稿.pdf”、“第3章内容演示文稿.pdf”、“第4章内容演示文稿.pdf”、“第5章内容演示文稿.pdf”。步骤316判断所有文件已经全部解压缩完毕,步骤318结束对QQCourseSlides3rdEd.zip的解压缩过程。图4显示了在Linux操作系统上对QQCourseSlides3rdEd.zip解压缩得到的文件。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种解决文件名乱码问题的ZIP文件解压缩方法,包括以下步骤:
A.通过一系统信息检测模块根据当前操作系统使用的字符集编码确定目标编码;
B.通过一解压缩模块从ZIP文件中的中央目录区提取一文件名;
C.通过一编码识别模块根据提取的文件名确定源编码;
D.如源编码与目标编码不相同,通过一编码转换模块将符合源编码的编码规则的文件名转换为符合目标编码的编码规则的文件名;如源编码与目标编码相同则不转换;
E.通过一解压缩模块使用经步骤D处理之后的文件名在一存储模块中创建一文件;
F.通过解压缩模块从ZIP文件中的压缩文件内容源数据区提取文件数据并写入到由步骤E创建的文件;
G重复步骤B~步骤F直至ZIP文件中的所有文件都被解压缩完毕。
2.如权利要求1所述的方法,其特征在于,所述步骤A中确定目标编码的依据是:如当前操作系统是Windows操作系统并且本地化环境是CP936,则目标编码为GB18030编码;如当前操作系统是Unix、Linux、Android、iOS及Mac OS之一的操作系统,则目标编码为UTF-8编码。
3.如权利要求1所述的方法,其特征在于,所述步骤C中根据文件名确定源编码的依据是:如果文件名符合UTF-8的编码规则,则源编码是UTF-8编码;如果文件名符合GB18030的编码规则,则源编码是GB18030编码;否则,将目标编码作为源编码。
4.如权利要求3所述的方法,其特征在于,步骤C中所述文件名符合UTF-8的编码规则是指存储所述文件名的字节数组中的数据可以拆分为下面四种数据中的一种或多种的组合:
1)第一字节数据的二进制表示中首位是0;
2)第一字节数据的二进制表示中前三位是110,第二字节数据的二进制表示中前两位是10;
3)第一字节数据的二进制表示中前四位是1110,第二、三字节数据的二进制表示中前两位是10;
4)第一字节数据的二进制表示中前五位是11110,第二、三、四字节数据的二进制表示中前两位是10。
5.如权利要求3所述的方法,其特征在于,所述文件名符合GB18030的编码规则是指存储所述文件名的字节数组中的数据可以分解为下面三种数据中的一种或种的组合:
1)第一字节数据在0x00~0x80范围内;
2)第一字节数据在0x81~0xFE范围内,第二字节数据在0x40~0x7E或者0x80~0xFE范围内;
3)第一字节和第三字节数据在0x81~0xFE范围内,第二字节和第四数据在0x30~0x39范围内。
6.如权利要求1所述的方法,其特征在于,步骤D中所述编码转换模块用以调用当前操作系统或其它编码转换软件及通过自行采用查询编码对照表的方法实现文件名从源编码向目标编码的转换;源编码或目标编码为GB18030的编码转换模块或编码对照表不可用时,则降级使用GBK的编码转换模块或编码对照表。
CN201410406083.4A 2014-08-18 2014-08-18 一种解决文件名乱码问题的zip文件解压缩方法 Active CN104199867B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410406083.4A CN104199867B (zh) 2014-08-18 2014-08-18 一种解决文件名乱码问题的zip文件解压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410406083.4A CN104199867B (zh) 2014-08-18 2014-08-18 一种解决文件名乱码问题的zip文件解压缩方法

Publications (2)

Publication Number Publication Date
CN104199867A true CN104199867A (zh) 2014-12-10
CN104199867B CN104199867B (zh) 2017-05-17

Family

ID=52085160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410406083.4A Active CN104199867B (zh) 2014-08-18 2014-08-18 一种解决文件名乱码问题的zip文件解压缩方法

Country Status (1)

Country Link
CN (1) CN104199867B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243168A (zh) * 2015-11-11 2016-01-13 中国建设银行股份有限公司 一种数据迁移方法及系统
CN105516372A (zh) * 2016-02-25 2016-04-20 深圳天珑无线科技有限公司 文件名的处理方法、装置及服务器
CN106649693A (zh) * 2016-12-19 2017-05-10 创新科存储技术有限公司 应用网络文件系统处理中文数据的方法及装置
CN110266317A (zh) * 2019-06-19 2019-09-20 新疆大学 一种基于维吾尔文音节的短文压缩方法
CN111679830A (zh) * 2020-06-03 2020-09-18 中国银行股份有限公司 文件编码格式检测方法及装置
CN113728601A (zh) * 2019-04-29 2021-11-30 日立数据管理有限公司 优化压缩数据的存储和获取
CN113779513A (zh) * 2021-09-15 2021-12-10 广州易方信息科技股份有限公司 Zip文件的标识插入方法、装置、计算机设备和存储介质
CN114580353A (zh) * 2022-03-11 2022-06-03 上海我云网络科技有限公司 Zip文件的解码识别方法、编码修正方法、计算机可读存储介质及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070005628A1 (en) * 2005-07-04 2007-01-04 Pascal Melix Method and apparatus for compressing and/or decompressing a data structure
CN102567293A (zh) * 2010-12-13 2012-07-11 汉王科技股份有限公司 文本文件的编码格式探测方法和装置
CN103970913A (zh) * 2014-05-28 2014-08-06 广州视源电子科技股份有限公司 Utf-8与ansi编码识别方法以及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070005628A1 (en) * 2005-07-04 2007-01-04 Pascal Melix Method and apparatus for compressing and/or decompressing a data structure
CN102567293A (zh) * 2010-12-13 2012-07-11 汉王科技股份有限公司 文本文件的编码格式探测方法和装置
CN103970913A (zh) * 2014-05-28 2014-08-06 广州视源电子科技股份有限公司 Utf-8与ansi编码识别方法以及装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243168A (zh) * 2015-11-11 2016-01-13 中国建设银行股份有限公司 一种数据迁移方法及系统
CN105243168B (zh) * 2015-11-11 2019-08-30 中国建设银行股份有限公司 一种数据迁移方法及系统
CN105516372A (zh) * 2016-02-25 2016-04-20 深圳天珑无线科技有限公司 文件名的处理方法、装置及服务器
CN105516372B (zh) * 2016-02-25 2019-05-14 深圳天珑无线科技有限公司 文件名的处理方法、装置及服务器
CN106649693A (zh) * 2016-12-19 2017-05-10 创新科存储技术有限公司 应用网络文件系统处理中文数据的方法及装置
CN113728601A (zh) * 2019-04-29 2021-11-30 日立数据管理有限公司 优化压缩数据的存储和获取
CN110266317A (zh) * 2019-06-19 2019-09-20 新疆大学 一种基于维吾尔文音节的短文压缩方法
CN111679830A (zh) * 2020-06-03 2020-09-18 中国银行股份有限公司 文件编码格式检测方法及装置
CN113779513A (zh) * 2021-09-15 2021-12-10 广州易方信息科技股份有限公司 Zip文件的标识插入方法、装置、计算机设备和存储介质
CN114580353A (zh) * 2022-03-11 2022-06-03 上海我云网络科技有限公司 Zip文件的解码识别方法、编码修正方法、计算机可读存储介质及系统

Also Published As

Publication number Publication date
CN104199867B (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
CN104199867A (zh) 一种解决文件名乱码问题的zip文件解压缩方法
CN110083805B (zh) 一种将Word文件转换为EPUB文件的方法及系统
CN104753540B (zh) 数据压缩方法、数据解压方法和装置
US5778213A (en) Multilingual storage and retrieval
US8368567B2 (en) Codepage-independent binary encoding method
AU2013382910B2 (en) Compression device, compression method, decompression device, decompression method, and information processing system
CN102804168A (zh) 在数据库系统中减少存储需求的数据压缩
US9496891B2 (en) Compression device, compression method, decompression device, decompression method, and computer-readable recording medium
CN101346689A (zh) 压缩模式表示对象和用于元数据处理的方法
CN103778202A (zh) 一种企业电子文档管理服务端及系统
CN102567293A (zh) 文本文件的编码格式探测方法和装置
CN105808513A (zh) 转换装置和转换方法
WO2017036348A1 (zh) 一种可扩展标记语言xml文档的压缩、解压方法和装置
CN111488556A (zh) 一种嵌套文档提取方法、装置及电子设备和存储介质
US9965448B2 (en) Encoding method and information processing device
US20220277139A1 (en) Computer-readable recording medium, encoding device, index generating device, search device, encoding method, index generating method, and search method
JP5551660B2 (ja) テキストをマトリクスコードシンボルに符号化するコンピュータ実行方法、マトリクスコードシンボルを復号化するコンピュータ実行方法、テキストをマトリクスコードシンボルに符号化するためのエンコーダ、およびマトリクスコードシンボルを復号化するためのデコーダ
US20180052810A1 (en) Non-transitory computer-readable recording medium, encoding method, encoding apparatus, decoding method, and decoding apparatus
US10922343B2 (en) Data search device, data search method, and recording medium
US9419649B1 (en) Encoding method and encoding device
WO2024066271A1 (zh) 数据库水印的嵌入方法、溯源方法、装置和电子设备
CN104679871A (zh) 一种汉语文本检索方法及汉语文本检索装置
US20050289132A1 (en) Method and system for converting encoding character set
EP4053730A1 (en) Decoding program creating dynamic dictionary associating codes to words for extraction
CN105320716A (zh) 数字出版物的自动标注方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant