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"); } } } }