Bạn cần yêu cầu trình điều khiển JDBC sử dụng mã hóa UTF-8 trong khi giải mã các ký tự đại diện cho truy vấn SQL thành byte. Bạn có thể làm điều đó bằng cách thêm useUnicode=yes
và characterEncoding=UTF-8
tham số truy vấn đến URL kết nối JDBC.
jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
Nếu không, nó sẽ sử dụng bộ ký tự mặc định của nền tảng hệ điều hành. Trình điều khiển MySQL JDBC tự nhận thức rõ ràng về cách mã hóa được sử dụng ở cả phía máy khách (nơi mã JDBC chạy) và phía máy chủ (nơi có bảng DB). Bất kỳ ký tự nào không nằm trong bộ ký tự được sử dụng bởi bảng DB sẽ được thay thế bằng dấu chấm hỏi.