データベースに保存される値が実際にU+003f(疑問符)であることを確認しましたか?選択したフォントに存在しない文字を表示し、それらを?'として表示する方法には、さまざまな規則があります。かなり一般的です。
したがって、ほとんどの場合、文字は正しく保存され、何らかの理由で、単に「?」として表示されます。基本的に、それがどのようにレンダリングされるかを無視し、どのコードポイントがデータベースに格納されるかを確認します。 U+9996またはU+003f(または完全に他の何か)ですか?疑問符としてレンダリングされたからといって、実際にはデータベースに保存されている疑問符であると盲目的に想定しないでください。