<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>All About Interop : Unicode</title><link>http://blogs.msdn.com/dotnetinterop/archive/tags/Unicode/default.aspx</link><description>Tags: Unicode</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>DotNetZip users: Please Test Unicode support (free zip library for .NET)</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/09/19/test-out-unicode-support-in-dotnetzip-free-zip-library-for-net.aspx</link><pubDate>Fri, 19 Sep 2008 22:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8959335</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8959335.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8959335</wfw:commentRss><description>&lt;P&gt;&lt;A class="" href="http://www.codeplex.com/DotNetZip" mce_href="http://www.codeplex.com/DotNetZip"&gt;DotNetZip&lt;/A&gt; is an open-source library to allow any .NET application to read and create zip files.&amp;nbsp; If you want your ASP.NET page to grab an uploaded zipfile and unpack it on the server, DotNetZip can help you.&amp;nbsp; If you want to generate a zipfile from a server-based app like an ASP.NET page and send it as a download, DotNetZip can be the library you need.&amp;nbsp; If you have a windows forms app or a WPF app that needs to read or write zipfiles, DotNetZip can help.&amp;nbsp; If you have an agent application that watches for files to be dropped into a directory, then zips or unzips them, DotNetZip is the thing you need. &lt;/P&gt;
&lt;P&gt;DotNetZip has been available as an open source project &lt;A class="" href="http://www.codeplex.com/" mce_href="http://www.codeplex.com"&gt;on CodePlex&lt;/A&gt;&amp;nbsp;for about a year. In that time I've added a bunch of features as requested by people who are using it - support for passwords, support for stream-based interfaces, zipfile comments, the ability to remove entries from zip files, progress events for zipping up or unzipping, finer control over the use of compression, and so on.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The &lt;A class="" href="http://www.codeplex.com/DotNetZip/WorkItem/View.aspx?WorkItemId=3152" mce_href="http://www.codeplex.com/DotNetZip/WorkItem/View.aspx?WorkItemId=3152"&gt;#1 most requested feature&lt;/A&gt; for the DotNetZip library is Unicode support - people want to be able to zip up files that have filenames with non-ASCII characters.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I've produced a &lt;A class="" href="http://www.codeplex.com/DotNetZip/Release/ProjectReleases.aspx?ReleaseId=14569" mce_href="http://www.codeplex.com/DotNetZip/Release/ProjectReleases.aspx?ReleaseId=14569"&gt;preliminary release&lt;/A&gt; with support for Unicode, and I'm asking for&amp;nbsp;people to&amp;nbsp;try it out, test it and tell&amp;nbsp;me if this does what they need&amp;nbsp;it to do.&amp;nbsp; The thing is, Unicode was added to the &lt;A class="" href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT" mce_href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT"&gt;PKWare specification for zip files&lt;/A&gt; only about a year ago.&amp;nbsp; There are few tools out there that properly support the spec.&amp;nbsp; In particular, &lt;A class="" href='http://search.msn.com/results.aspx?q=windows+"compressed+folderS"+unicode&amp;amp;FORM=QBHP' mce_href='http://search.msn.com/results.aspx?q=windows+"compressed+folderS"+unicode&amp;amp;FORM=QBHP'&gt;Windows XP and Windows Vista do not support the PKWare Unicode specification&lt;/A&gt; in the "compressed folders" feature.&amp;nbsp; In Windows, if you click on a zip file that complies with the PKWare spec, you won't get what you want to get.&amp;nbsp; And it's not just Windows.&amp;nbsp; Most tools don't support Unicode zip files.&amp;nbsp; As a result, I don't know how to test the Unicode support effectively.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Because zip tools that do Unicode are few and far between, I used a fallback approach in the library.&amp;nbsp; In the latest prelim release, DotNetZip uses the &lt;A class="" href="http://en.wikipedia.org/wiki/Code_page_437" mce_href="http://en.wikipedia.org/wiki/Code_page_437"&gt;IBM437 code page&lt;/A&gt; to encode non-ASCII characters by default.&amp;nbsp; This is not in the PKWare spec, but zip files that people have sent me are using this encoding.&amp;nbsp; IBM437 in zip files may be a quiet, unspecified, &lt;EM&gt;de-facto standard, &lt;/EM&gt;"good enough" for many people.&amp;nbsp; Of course, using the IBM437 mode, you cannot do Chinese characters, which is a huge hole.&amp;nbsp; But IBM437 does cover characters with umlauts and tildes and so on, a lot of Latin languages.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;And now I'm asking for your help.&amp;nbsp; I'd like everyone who uses DotNetZip to try out the new Unicode and IBM437 stuff.&amp;nbsp; It is available in the latest &lt;A class="" href="http://www.codeplex.com/DotNetZip/Release/ProjectReleases.aspx?ReleaseId=14569" mce_href="http://www.codeplex.com/DotNetZip/Release/ProjectReleases.aspx?ReleaseId=14569"&gt;v1.6 prelim release availalble&lt;/A&gt; on the releases tab.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;For tests:&amp;nbsp; &lt;BR&gt;Use the library to zip up files that have "Unicode filenames", or more accurately, filenames with characters that cannot be represented in 7-bit ASCII.&amp;nbsp; This might be characters with umlauts, tildes, and so on, in addition to characters from the non-Latin languages&amp;nbsp; - Hebrew, Greek, Cyrillic, and of course, Chinese.&amp;nbsp; &lt;BR&gt;&lt;BR&gt;See if it works, see if the files zip up and unzip properly.&amp;nbsp; See if the files open in Explorer the way you expect.&amp;nbsp; See if it works intuitively, if the library behaves the way you would like it to behave.&amp;nbsp; See if the zip files can be read by other tools and libraries (&lt;A class="" href="http://www.7-zip.org/" mce_href="http://www.7-zip.org/"&gt;7-zip&lt;/A&gt; or &lt;A class="" href="http://www.zlib.net/" mce_href="http://www.zlib.net/"&gt;zlib&lt;/A&gt; or &lt;A class="" href="http://www.rarlab.com/" mce_href="http://www.rarlab.com/"&gt;winrar&lt;/A&gt;).&amp;nbsp; That kind of thing. &lt;/P&gt;
&lt;P&gt;You will have to &lt;A class="" href="http://www.codeplex.com/DotNetZip/Release/ProjectReleases.aspx?ReleaseId=14569" mce_href="http://www.codeplex.com/DotNetZip/Release/ProjectReleases.aspx?ReleaseId=14569"&gt;check the doc&lt;/A&gt; on the UseUnicode property on the ZipFile to see the options and the details of the implementation.&amp;nbsp; I encourage you to try all your tests with that flag both ON and OFF - to see how it behaves and what you would prefer.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;If find something that breaks, or surprises you, then please do &lt;A class="" href="http://www.codeplex.com/DotNetZip/WorkItem/AdvancedList.aspx" mce_href="http://www.codeplex.com/DotNetZip/WorkItem/AdvancedList.aspx"&gt;report it&lt;/A&gt;.&amp;nbsp; If you are really ambitious, you can write up a test case that reproduces the problem you observed and attach it to a &lt;A class="" href="http://www.codeplex.com/DotNetZip/WorkItem/AdvancedList.aspx" mce_href="http://www.codeplex.com/DotNetZip/WorkItem/AdvancedList.aspx"&gt;new workitem&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The new Unicode support in the library is easy to describe, but it is hard for me to test.&amp;nbsp; It is hard for me to know if I am testing the right things.&amp;nbsp; I need help on this, before I can declare the unicode support useful,&amp;nbsp;stable, and interoperable. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Check it out!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8959335" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Zip/default.aspx">Zip</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Unicode/default.aspx">Unicode</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/CodePlex/default.aspx">CodePlex</category></item></channel></rss>