Bạn đã xác minh rằng giá trị được lưu trữ trong cơ sở dữ liệu thực sự là U + 003f (dấu chấm hỏi) chưa? Có tất cả các loại quy ước về cách hiển thị các ký tự không tồn tại trong phông chữ đã chọn và hiển thị chúng như thế nào? ' khá phổ biến.
Vì vậy, rất có thể, ký tự được lưu trữ chính xác, và vì bất kỳ lý do gì, chỉ đơn giản là được hiển thị dưới dạng '?'. Về cơ bản, hãy bỏ qua cách nó được hiển thị và xem những gì codepoint được lưu trữ trong cơ sở dữ liệu. Đó có phải là U + 9996 hay U + 003f (hoặc hoàn toàn khác) không? Đừng mù quáng cho rằng chỉ vì nó được hiển thị dưới dạng dấu chấm hỏi, nó thực sự là một dấu hỏi được lưu trữ trong cơ sở dữ liệu.