Crazy BOM, Byte Order Mark (export RadGrid To CSV)

Sudah beberapa hari ini di buat pusing oleh salah satu aplikasi yang saya kembangkan. Output si aplikasi tidak dapat dengan masuk ke sistem online banking bank mandiri, MCM. Setiap kali di upload, selalu muncul error, padahal format dan struktur nya sudah sama dengan contoh yang diberikan oleh pihak bank mandiri, dilihat secara kasat mata.

Setelah frustasi, saya iseng-iseng untuk coba membandingkan dua buah file dengan menggunakan WinMerge. Satu buah file contoh dari bank mandiri, dan satu buah file yang digenerate oleh sistem yang saya kembangkan. Ternyata hasilnya cukup mengangetkan, dua file tersebut berbeda, padahal kalaw dilihat secara kasat mata adalah benar-benar identik.

Pada file hasil generate dari aplikasi yang saya kembangkan, terdapat tambahan karakter ini  pada kalimat paling atas pojok kiri. Setelah di googling, ternyata itu adalah BOM, Byte Order Mark yang salah di interpretasikan. BOM adalah Byte Order Mark yang merupakan standar UTF-8. Kalimat aneh “” ini muncul karena aplikasi saya salah meng-interpretasikan BOM. Harusnya di interpretasikan ke UTF-8, tetapi ini malah di interpretasikan ke ISO-8859-1.

Konversi data, saya lakukan dengan menggunakan kontrol Telerik RadGrid. Solusinya adalah memaksa interpretasi yang betul pada saat konversi. Hal itu berarti menambahkan sedikit kode pada event GridExporting. Kode yang ditambahkan adalah sebagai berikut:

if (e.ExportType == ExportType.Csv)
{
Response.ContentType = “application/csv”;
Response.AddHeader(“Content-Type”, “text/csv”);
Response.BinaryWrite(new System.Text.ASCIIEncoding().GetBytes(e.ExportOutput));
Response.End();
}

Semoga artikel ini bisa membantu yang kesusahan seperti saya🙂

cheers.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s