Theo tài liệu trình điều khiển MySQL JDBC bạn cũng cần đặt mã hóa ký tự trong URL kết nối JDBC. Đây là một ví dụ:
jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
Nếu không, trình điều khiển MySQL JDBC sẽ sử dụng mã hóa mặc định của nền tảng để chuyển đổi các ký tự thành byte trước khi gửi qua mạng, trong trường hợp của bạn dường như không phải là UTF-8. Sau đó, tất cả các ký tự không được che sẽ được thay thế bằng dấu chấm hỏi.
Ngoài ra, khi truy xuất dữ liệu, bạn cần đảm bảo rằng bảng điều khiển / tệp nơi bạn đang hiển thị / ghi các ký tự cũng hỗ trợ / sử dụng UTF-8. Nếu không chúng cũng sẽ trở thành dấu chấm hỏi. Cách khắc phục điều đó phụ thuộc vào cách / vị trí bạn đang hiển thị / ghi các ký tự đó vào.
Xem thêm:
Nhân tiện, bạn không cần SET NAMES
truy vấn tại đây.