
Ionic.Zip เมื่อใช้งาน Encoding โดยเริ่มต้นจะไม่รองรับการเพิ่มไฟล์ภาษาไทย ทำให้ไฟล์ที่เพิ่มเข้าไปใน zip นั้นแสดงชื่อเป็นเครื่องหมายคำถาม (???) ดังนั้นวิธีแก้ไขคือเราต้องกำหนด Encoding ให้เมื่อเรียกใช้งาน class ZipFile เพื่อกำหนด object
วิธีแก้ไข Ionic.Zip ให้เพิ่มไฟล์ที่เป็นชื่อภาษาไทย จะต้องกำหนด Encoding.UTF8
ตรวจสอบว่า using System.Text เข้ามาหรือยัง
using System.Text;
ขั้นตอนสร้าง object ZipFile ให้กำหนด Encoding.UTF8 เข้าไปด้วย เพียงเท่านี้ก็จะสามารถเพิ่มไฟล์ที่มีชื่อภาษาไทยเข้าไปใน Zip ได้
ZipFile zip = new ZipFile(Encoding.UTF8)
โค้ดทั้งหมด
using System;
using System.Text;
using Ionic.Zip;
namespace iDevcsharpConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ZipFile zip = new ZipFile(Encoding.UTF8))
            {
                zip.AddFile(@"D:\idevcsharp.com\example\Ionic.Zip\ภาษาไทย1.txt", "");
                zip.AddFile(@"D:\idevcsharp.com\example\Ionic.Zip\ภาษาไทย2.jpg", "");
                zip.Save(@"D:\idevcsharp.com\example\Ionic.Zip\ภาษาไทย.zip");
            }
        }
    }
}
