Zips contain bytes, not characters. Files contain bytes, not characters. There's no need for encoding when going from one to another. Suspect that your OS X file viewer understands unicode and your windows one doesn't. If you're reading the unzipped file with perl, you may need to binmode $IN, ':utf8'
Right.
Where would I put that in the code posted above? Because as far as I can tell the library should be taking care of that. Unless you're suggesting that the problem is within the library?