Tafsir al-Qurthubi, yang memiliki judul lengkap al-Jāmi‘ li-Aḥkām al-Qur’ān wa al-Mubayyin limā Taḍammanahu min al-Sunnah wa Āy al-Furqān, adalah salah satu kitab tafsir klasik paling berpengaruh dalam khazanah Islam. Disusun oleh Imam Abū ‘Abdillāh Muḥammad ibn Aḥmad al-Anṣārī al-Qurṭubī (w. 671 H/1273 M), kitab ini fokus pada aspek hukum (ahkām) yang terkandung dalam ayat-ayat al-Qur’an. Meski penekanan utamanya pada fikih, tafsir ini juga membahas aspek bahasa, balaghah, kisah, aqidah, hingga faedah moral dari ayat-ayat al-Qur’an, menjadikannya sangat komprehensif. Dengan gaya penulisan yang sistematis dan ilmiah, al-Qurthubi mengutip pendapat para ulama dari berbagai mazhab, khususnya fikih Maliki yang menjadi pegangan beliau, namun tetap menyajikan pandangan lintas mazhab dengan adil.
Teks di atas mengandung karakter beraksen. Jika disimpan dalam database, mungkin akan “rusak” karena karakter beraksen seperti ā, ḥ, dan ṭ sering kali dikodekan sebagai multibyte dan jika koneksi database tidak disetel ke UTF-8 (atau lebih baik, UTF-8mb4), karakter tersebut rusak dan ditampilkan sebagai tanda tanya (?) atau karakter aneh lainnya.
Pada WordPress perlu menggunakan $wpdb->query(“SET NAMES ‘utf8mb4′”); untuk memaksa koneksi database menggunakan UTF8mb4 sebelum data diambil, memastikan karakter spesial/ beraksen tidak rusak.
$idbuku = trim( sanitize_text_field( $_GET['idbuku'] ) );
$wpdb->query("SET NAMES 'utf8mb4'");
$table_name = 'vw_ebook_kitabkuning_aktif';
$query = $wpdb->prepare(
"SELECT kodebuku, judul, gambar, sinopsis, harga, gdrive_link FROM $table_name WHERE idbuku = %s",
$idbuku
);
$buku = $wpdb->get_row( $query );
Masalah ?
pada karakter beraksen (seperti ā, ḥ, ṭ) tidak hanya terjadi saat menampilkan data, tetapi yang lebih krusial adalah saat menyimpan data ke database. Jika saat menyimpan, koneksi database tidak disetel ke utf8mb4
, karakter tersebut akan rusak (corrupt) menjadi tanda tanya sebelum sempat tersimpan.
global $wpdb, $base_table_name;
// Untuk memastikan database access AJAX juga aman ===
$wpdb->query("SET NAMES 'utf8mb4'");
Selain perlakukan saat penyimpanan dan pengambilan data, database juga harus mendukung charset ini. Data yang dimasukkan (ā
, ḥ
, ṭ
, dll.) adalah karakter Unicode. Jika kolom di database (misalnya kolom sinopsis
di tabel ebook_kitabkuning
) masih disetel ke karakter set lama (misalnya latin1
atau utf8
3-byte), server MySQL akan otomatis “memotong” atau merusak karakter tersebut menjadi ?
saat disimpan.
Untuk mengatasinya, kita harus melakukan perbaikan langsung pada database MySQL, biasanya melalui phpMyAdmin atau tool manajemen database lainnya.
Solusi: Konversi Karakter Set MySQL
Kita perlu menjalankan perintah SQL untuk memastikan tabel menggunakan standar UTF8MB4, yang merupakan standar Unicode yang diperlukan untuk menyimpan karakter beraksen Arab dan emoji secara aman.
Langkah 1: Periksa wp-config.php
(Wajib)
Pastikan file konfigurasi WordPress sudah benar. Cari baris berikut di wp-config.php
dan pastikan nilainya adalah utf8mb4
:
define( 'DB_CHARSET', 'utf8mb4' );
Langkah 2: Jalankan Perintah SQL (Melalui phpMyAdmin/Tool Database)
ALTER TABLE namaTable CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Langkah 3: Perbarui Data yang Sudah Rusak
Data lama yang sudah terlanjur rusak (sudah menjadi ?
di database) tidak akan pulih secara otomatis. Kita harus mengedit kembali entri tersebut, memasukkan karakter beraksen yang benar, dan menyimpannya lagi agar data di database menjadi benar.