<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>varro (varro)</title>
    <link>https://ruby-china.org/varro</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>求教：为何 ruby-zip 打包的文件名是中文时会出现乱码？</title>
      <description>&lt;p&gt;请教一个问题：
需要：将文档打包成一个 zip 文件
环境：ubuntu ruby2 rails4
使用 ruby-zip&lt;/p&gt;

&lt;p&gt;代码：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Zip&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;zipfile_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;Zip&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;CREATE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;zipfile&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
      &lt;span class="vi"&gt;@reports.each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;report&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;

       &lt;span class="c1"&gt;# filename=Iconv.iconv("GBK//IGNORE", "UTF-8//IGNORE", "#{report.school.name}#{report.grade}#{report.subject_name}")&lt;/span&gt;
        &lt;span class="n"&gt;zipfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;report&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;school&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}#{&lt;/span&gt;&lt;span class="n"&gt;report&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grade&lt;/span&gt;&lt;span class="si"&gt;}#{&lt;/span&gt;&lt;span class="n"&gt;report&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;subject_name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;report&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;current_path&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;

      &lt;span class="k"&gt;end&lt;/span&gt;

    &lt;span class="k"&gt;end&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;打包进去的文件名为乱码。尝试了
&lt;code&gt;# filename=Iconv.iconv("GBK//IGNORE", "UTF-8//IGNORE", "#{report.school.name}#{report.grade}#{report.subject_name}")&lt;/code&gt;
无法解决。
是否打包的文件无法支持中文的文件名呢？&lt;/p&gt;</description>
      <author>varro</author>
      <pubDate>Sun, 29 Dec 2013 16:51:29 +0800</pubDate>
      <link>https://ruby-china.org/topics/16490</link>
      <guid>https://ruby-china.org/topics/16490</guid>
    </item>
  </channel>
</rss>
