Saya melihat beberapa jawaban di posting ini dan dimungkinkan untuk dianggap pengetahuan dasar yang lengkap, karena memiliki beberapa pendekatan dalam Pemrograman C # untuk menyelesaikan masalah yang sama. Hanya satu hal yang perlu dipertimbangkan adalah tentang perbedaan antara Pure UTF-8 dan UTF-8 dengan BOM .
Pada minggu lalu, di pekerjaan saya, saya perlu mengembangkan satu fungsionalitas yang menghasilkan file CSV dengan BOM dan CSV lainnya dengan UTF-8 murni (tanpa BOM), setiap jenis file CSV Encoding akan dikonsumsi oleh berbagai API non-standar, yang API membaca UTF-8 dengan BOM dan API lainnya membaca tanpa BOM. Saya perlu meneliti referensi tentang konsep ini, membaca " Apa perbedaan antara UTF-8 dan UTF-8 tanpa BOM? " Diskusi Stack Overflow dan tautan Wikipedia ini " Tanda urutan Byte " untuk membangun pendekatan saya.
Akhirnya, Pemrograman C # saya untuk kedua jenis pengkodean UTF-8 (dengan BOM dan murni) harus serupa seperti contoh di bawah ini:
//for UTF-8 with B.O.M., equals shared by Zanoni (at top)
string result = System.Text.Encoding.UTF8.GetString(byteArray);
//for Pure UTF-8 (without B.O.M.)
string result = (new UTF8Encoding(false)).GetString(byteArray);