Asalkan Anda memang menggunakan Facelets (yang menggunakan UTF-8 secara default) dan tidak menggunakan PrimeFaces ajax (yang diketahui mengacaukan penyandian badan permintaan ), masalah Anda memiliki 2 penyebab:
-
Encoding karakter driver JDBC MySQL tidak disetel ke UTF-8. Hal ini menyebabkan karakter kacau di DB.
-
Encoding karakter konsol Eclipse tidak disetel ke UTF-8. Ini menyebabkan karakter kacau di
System.out
.
Solusinya adalah:
-
Tambahkan
useUnicode=yes
dancharacterEncoding=UTF-8
parameter ke koneksi JDBC. Anda dapat menentukannya sebagai string kueri di URL JDBCjdbc:mysql://hostname:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
atau sebagai properti koneksi di sumber data JDBC, dengan cara yang sama persis seperti yang Anda tentukan nama pengguna, kata sandi, dll.
-
Beri tahu Eclipse untuk menggunakan UTF-8 sebagai encoding konsol dengan Window> Preferences> General> Workspace> Text File Encoding :