Code page ที่มาพร้อมกัน .NET Core จะไม่มี Windows-874 ติดมาด้วย
ตัวอย่าง
var encoding = System.Text.Encoding.GetEncoding(874);
โค้ดด้านบนจะเกิด Exception ดังนี้
System.NotSupportedException: No data is available for encoding 874. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
วิธีแก้
1. ติดตั้งแพ็กเกจ System.Text.Encoding.CodePages
dotnet add package System.Text.Encoding.CodePages
2. Register ด้วยฟังก์ชัน Encoding.RegisterProvider() ดังนี้
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
จากนี้ จะสามารถใช้ฟังก์ชัน GetEncoding(874) ตามตัวอย่างด้านบน โดยการ Register นี้จะไม่มีผลกับฟังก์ชัน GetEncodings() โค้ดด้านล่างจะได้ผลลัพธ์เหมือนเดิม ไม่ว่าจะเรียกก่อนหรือหลังจาก Register ในข้อ 2
var numberOfEncoding = Encoding.GetEncodings().Length