Pada suatu hari saya menerima email dari salah satu teman saya yang menanyakan bagaimana cara menyimpan tulisan Arab ke dalam MySQL.
Sepintas… dalam hati mengatakan, “Ah… mudah”… but ternyata cukup melelahkan dan membingungkan juga untuk mencari solusinya. Akan tetapi akhirnya juga terselesaikan
Pertama, saya coba mencari sampel tulisan Arab di internet. Setelah menemukan salah satu situs yang isinya terdapat tulisan Arab, saya kemudian mengcopy teks Arabnya, lalu disisipkan langsung ke tabel MySQL dengan PhpMyAdmin. Dalam tabel tersebut saya coba membuat satu buah field saja dengan tipe data Varchar.
CREATE TABLE arab ( text varchar(100) );
OK… insert tersebut berhasil, dan tulisan Arab telah tersimpan ke tabel.
Selanjutnya, saya coba untuk menampilkan tulisan Arab yang ada dalam tabel MySQL tersebut ke halaman web dengan script PHP. Tapi… apa yang keluar? Ternyata yang keluar adalah karakter ‘????????’.
Waduh… ada apa ini? Feeling saya kemudian mengatakan, ah… siapa tahu PhpMyAdminnya gak support untuk insert data karakter dalam format Arab. Trus.. saya coba lakukan hal yang sama (insert data) langsung via Navicat (interface untuk administrasi MySQL berbasis Windows seperti halnya PhpMyAdmin). Eh… ternyata hal yang sama muncul.
Beberapa kali browsing dan Googling untuk mencari referensinya, gak ketemu-ketemu juga. Ketemu sih beberapa penjelasan, namun tidak ada yang berhasil.
Setelah lelah mencari, akhirnya saya coba mencari ide lain yaitu membuat script untuk insert data tapi melalui form yang dibuat sendiri.
arab.php
<form method="post" action="showarab.php"> <textarea name="input"></textarea> <input type="submit" value="submit" name="submit"> </form>
showarab.php
<?php mysql_connect("dbhost", "dbuser", "dbpass"); mysql_select_db("dbname"); // membaca teks input $input = $_POST['input']; // menyimpan teks input ke tabel MySQL $query = "INSERT INTO arab VALUES('$input')"; mysql_query($query); // menampilkan teks yang tersimpan $query = "SELECT * ARAB arab"; $hasil = mysql_query($query); while ($data = mysql_fetch_array($hasil)) { echo $data['text']."<br>"; } ?>
Secara sekilas, script di atas sama seperti proses insert data biasa, demikian pula dengan mekanisme untuk menampilkan datanya.
Setelah itu, saya coba memasukkan tulisan arab ke dalam form yang saya buat lalu mensubmitnya.
dan hasilnya
He…3x akhirnya bisa juga tampil di halaman web.
Dengan demikian dapat disimpulkan bahwa jika ingin menyimpan tulisan Arab ke MySQL, jangan langsung menyisipkannya via PhpMyAdmin atau Navicat namun buat terlebih dahulu form untuk inputnya.
Mau tau bentuk karakter dari tulisan Arab yang tersimpan dalam tabel MySQL nya setelah melalui proses di atas? ini dia…
Hasil di atas hanya didasarkan atas eksperimen saja. Barangkali ada di antara Anda yang bisa selain dengan cara di atas?
5 Komentar
FR-SYSTEM.WEB.ID
collation databasenya diubah jadi ini utf8_unicode_ci , jika menggunakan PHPmyadmin bisa diubah dengan cara klik database dan masuk tab Opartion disitu ada kolom Collation, tinggal dipilih encode yg dimau dan langsung di save, Jika menggunakan SQLYog, silahkan Klik kanan database yg ingin diubah, selanjutnya Klik Alter Database, disitu ada Database Collation, silahkan anda ubah sesuai dengan yg di inginkan
Nana
Nana
FR-SYSTEM.WEB.ID
Goez