Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menampilkan karakter UTF-8 di phpMyAdmin?

Sayangnya, phpMyAdmin adalah salah satu aplikasi php pertama yang berbicara dengan MySQL tentang charset dengan benar. Masalah Anda kemungkinan besar disebabkan oleh fakta bahwa database tidak menyimpan string UTF-8 yang benar pada awalnya.

Untuk menampilkan karakter dengan benar di phpMyAdmin, data harus disimpan dengan benar di database. Namun, mengubah database menjadi rangkaian karakter yang benar sering kali merusak aplikasi web yang tidak mengetahui fitur terkait rangkaian karakter yang disediakan oleh MySQL.

Bolehkah saya bertanya:apakah MySQL> versi 4.1? Untuk aplikasi web apa database itu? phpBB? Apakah database dimigrasikan dari versi aplikasi web yang lebih lama, atau versi MySQL yang lebih lama?

Saran saya jangan abang jika web app yang anda gunakan terlalu lama dan tidak support. Hanya konversi database ke UTF-8 asli jika Anda yakin aplikasi web dapat membacanya dengan benar.

Sunting:

MySQL Anda> 4.1, itu artinya charset-aware. Apa pengaturan susunan charset untuk database Anda? Saya cukup yakin Anda menggunakan latin1 , yang merupakan nama MySQL untuk ASCII, untuk menyimpan teks UTF-8 dalam 'byte', ke dalam database.

Untuk klien yang tidak peka terhadap karakter (mis. mysql-cli dan php-mod-mysql), karakter ditampilkan dengan benar karena sedang ditransfer ke/dari database sebagai byte. Di phpMyAdmin, byte dibaca dan ditampilkan sebagai karakter ASCII, seperti itulah teks sampah yang Anda lihat.

Tak terhitung jam telah dihabiskan bertahun-tahun yang lalu (2005?) ketika MySQL 4.0 menjadi usang, di banyak bagian Asia. Ada cara standar untuk mengatasi masalah Anda dan data yang tertelan:

  1. Cadangkan database Anda sebagai .sql
  2. Buka di editor teks berkemampuan UTF-8, pastikan tampilannya benar.
  3. Cari charset collation latin1_general_ci , ganti latin1 ke utf8 .
  4. Simpan sebagai file sql baru, jangan timpa cadangan Anda
  5. Impor file baru, mereka sekarang akan terlihat benar di phpMyAdmin, dan bahasa Jepang di aplikasi web Anda akan menjadi tanda tanya. Itu normal.
  6. Untuk aplikasi web php Anda yang mengandalkan php-mod-mysql, masukkan mysql_query("SET NAMES UTF8"); setelah mysql_connect() , sekarang tanda tanya akan hilang.
  7. Tambahkan konfigurasi berikut my.ini untuk mysql-cli:

    # CLIENT SECTION
    [mysql]
    default-character-set=utf8
    # SERVER SECTION
    [mysqld]
    default-character-set=utf8
    

Untuk informasi lebih lanjut tentang charset di MySQL, silakan merujuk ke manual: http://dev.mysql.com/doc/refman/5.0/en/charset-server.html

Perhatikan bahwa saya menganggap aplikasi web Anda menggunakan php-mod-mysql untuk terhubung ke database (karenanya mysql_connect() function), karena php-mod-mysql adalah satu-satunya ekstensi yang dapat saya pikirkan yang masih memicu masalah HARI INI.

phpMyAdmin menggunakan php-mod-mysqli untuk terhubung ke MySQL. Saya tidak pernah belajar bagaimana menggunakannya karena beralih ke kerangka kerja* untuk mengembangkan proyek php saya. Saya sangat menganjurkan Anda melakukannya juga.

  • Banyak kerangka kerja, mis. CodeIgniter, Zend, gunakan mysqli atau pdo untuk terhubung ke database. fungsi mod-mysql dianggap usang karena masalah kinerja dan skalabilitas. Selain itu, Anda tidak ingin mengikat proyek Anda ke tipe database tertentu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendapatkan Bulan dari Tanggal di MySQL

  2. Cara Mengubah Ukuran Kolom di MySQL

  3. Bagaimana menghubungkan beberapa database di PHP, MYSQLi &PDO

  4. Bagaimana cara mengatur waktu eksekusi maksimum untuk kueri mysql?

  5. Bagaimana cara menggunakan GROUP BY untuk menggabungkan string di MySQL?