Isu Pengekodan Aksara JDBC Selesai dalam Aplikasi Web Java
Dalam aplikasi web Java yang digunakan pada GlassFish 3 dan menggunakan JPA (EclipseLink) dengan Pangkalan data MySQL, pengguna mengalami percanggahan pengekodan semasa menyimpan data melalui kaedah kemas kini(). Aksara dalam medan rentetan digantikan dengan '?' simbol semasa sisipan pangkalan data.
Walaupun mengkonfigurasi pelayan, halaman web dan pangkalan data untuk menggunakan UTF-8, isu ini berterusan. Walaupun data dipaparkan dengan betul pada halaman berikutnya dan kelihatan sah semasa penyahpepijatan NetBeans, keraguan kekal tentang ketepatan terjemahan nyahpepijat.
JDBC Configuration the Culprit
Menjejaki punca utama, didapati bahawa JDBC, bukannya JPA, mengawal pengekodan aksara dalam senario ini. Dengan menambahkan parameter berikut pada URL sambungan JDBC:
characterEncoding=utf8
isu pengekodan telah diselesaikan. URL sambungan yang diubah suai memastikan pengekodan aksara UTF-8 ditakrifkan secara eksplisit untuk komunikasi JDBC dengan pangkalan data MySQL, menyelesaikan isu integriti dalam medan rentetan.
Atas ialah kandungan terperinci Mengapakah aksara saya digantikan dengan \'?\' apabila menyimpan data dalam aplikasi web Java saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!