TZipper and TUnzipper supports UTF8
but it does not support Password however, you can create your own subclass to support password, and this means you need to do it both ways; the compression needs to encrypt the file via the password as the key and the uncompression needs to ask or have a property to un-compress it.
The Zipper unit has the classes with events that allow you to capture and assign streams of your own so you can then take advantage of using encryption on the files.
Basically, you will need to write something.
Or you can use the PKZip or 7z I think supports this already.?
Jamie