我正在用unicode gem和Zip::ZipOutputStream类创建压缩归档文件,但遇到了rubyzip字母(西里尔字母)的问题-在归档文件中,它们像????? ???? ??.doc一样以问号的形式出现。rubyzip支持unicode吗?
发布于 2012-02-16 04:15:48
我研究了rubyzip方法,看起来rubyzip并不能改变语言。它可能使用您计算机的默认代码页。您可以使用chilkat zip,如this示例中所示,除非您有chilkat无法满足的特定需求。
发布于 2014-07-02 23:36:56
您可以使用以下代码片段将UTF-8转换为包含一些unicode字符(只有几个)的CP437。Windows 7和更早的版本假定文件名是用CP437编码的。
# first normalize the string
normalized_filename = input.mb_chars.normalize.to_s
# then encode in cp437
filename_for_zip = normalized_filename.encode("cp437")
# add file to zip
zipfile.add(filename_for_zip, pdf_file)发布于 2018-04-05 21:05:13
你可以直接运行zip。
`cd yourfolder; zip archivename file1 file2`请注意特定的引号。我在Ubuntu上为Cyrillic文件名工作,而rubyzip正在用不可读的文件名生成归档文件。
https://stackoverflow.com/questions/9300232
复制相似问题