Halo, nama saya Agung. Berasal dari Denpasar, Bali. Blog ini adalah blog harian saya, dari tips dan trick code, curahan hati, dan beberapa tulisan tidak penting.

Menu & Search

Menghindari karakter encoding aneh pada database – MySQL

May 1, 2011

Dahulu pada kantor yang lama, saat masih cupu – cupu nya, setiap kali XML merender error pada tampilan browser, selalu yang disalahkan content dari database nya. Padahal sebetulnya sebelum data di insert ke dalam database, data tersebut di proses terlebih dahulu melalui berbagai proses. Dan salah satu yang sering sekali terlupa oleh seorang programmer adalah encoding dari database.

Pada MySQL, standart collation dari database adalah Latin. Dimana collation tersebut, sesuai dengan nama nya hanya dapat menyimpan karakter – karakter latin. Saat table akan di insert dengan row baru, setiap karakter akan di convert menjadi collation yang berkesesuaian. Sehingga jika suatu saat table tersebut di insert dengan tulisan china, maka tulisan – tulisan tersebut akan di convert (biasa nya di convert menjadi “????” karena di collation latin tidak mengenali character tersebut).

Oleh karena itu sangat perlu di perhatikan Collation dari setiap field. Untuk aman nya lebih baik menggunakan Collation utf8-unicode-ci atau utf8-general-ci. Perbedaan antara kedua collation tersebut dapat dilihat pada pertanyaan berikut : http://stackoverflow.com/questions/2344118/utf-8-general-bin-unicode

Belum selesai sampai sana. Ada 1 lagi yang harus juga diperhatikan. Setiap kali melakukan query (ddl, dml, ataupun select), biasakan untuk mendefenisikan client character set. Untuk php dengan database MySql dapat menggunakan fungsi mysql_set_charset, dengan parameter utf8.

Dengan melakukan set pada database & php, maka akan terhindar dengan character – character aneh yang mungkin keluar dikemudian hari.

Related article

Startup, dan Leverage dalam usaha

Kita tau belakangan ini banyak startup berguguran. Bahkan di sebuah…

Sekolah Anak

Beberapa hari lalu, istri bertanya kepada saya, kemana anak kami…

Istri, IRT atau Kerja atau Usaha?

Pernah ga cowo – cowo yang akan nikah berpikir, istri…

3 Discussion to this post

  1. mysql_set_charset itu digunakan untuk apa ya ??

    sama mau tanya.. saya lagii belejar encoding.. ya seperti diatas.,. kalo yg di database dah bisa kalo yg di sciptnya gimana ? mohon penjelasan 🙂

    • mysql set charset itu untuk melakukan menentukan default connection dari php ke mysql. biasanya di beberapa framework sudah langsung di inisialisasi charset nya menjadi utf8.

      makusd nya di database bisa yang di script gimana?

  2. RieqyNs13 says:

    gan, bedanya collate ama character set(charset) apa ya ??

Leave a Reply

Your email address will not be published. Required fields are marked *

Type your search keyword, and press enter to search