Java : Java でUnicode文字列処理中に「�」という表示が出てくる現象。Replacement Character。
根本原因 *ブログのラベルは「Java」としましたが、「Unicode」「文字コード」と置くのが正確ですが、まぁそのへんはもう暗黙の前是ということで。 Unicodeにおいて、なんらかの文字コードでマッピングが失敗する場合、その取扱いできない文字は「�」(U+FFFD)に置換されます。 プログラム内の文字列処理中にこの状況になると、当然「�」になってしまいます。 詳細は自分が説明するよりも、とても詳しいブログがあったので、ぜひそちらを → 「 あしのあしあと : Javaにおける文字コード周りの話(5) 」 自分が遭遇した状況 MySQLで、どこかのフィールド値が「NUL文字」(U+0000)の場合、これを取得すると「�」になっていました。 [テーブル状況(簡易)] id str 1 あいうえお 2 かきくNULLNULL ↑をDAOなどでゲットすると、「1 : あいうえお、2 : かきく��」。 対応 U+0000以外にも同様の対応が必要な文字はあるので、とりあえずcharとして取扱い、OK/NG判定したりしました。 この辺はプロジェクトの状況ごとに対応するしかないと思います。