イエね。あるでしょ「機種依存文字」。
もちろん以前から「気をつけなさいよ」とか、自分から使わないように意識してましたよ。
で、最近はEUC-JPからUTF-8の環境になり、何やらイイ感じになってきましたヨネ。
特にご提供システムのimportデータにイワユル「丸囲み数字」(①②とかね)がありまして、しかしこれがimportされると1,2とかになってしまうんですよ。アレ?osのdefaultもD/Bの文字コードも「UTF-8」なのに何故?
import生データをjavaから表示させても①だし、D/Bのテーブルにsql文で入れても①で入るし・・・。ってことはHibernate?。JDBC?。
で、結論は.
対象となるEntityクラスのsetterでご丁寧にJava.text.Normalizerを噛ませていたコトが原因でした。変な文字入れられちゃ困ると思って噛ませたのですが、Normalizerさんの仰る通り、①は変な文字でこれって1ってコトでしょ。
色々調べていると、Normalizerは比較するときに使うベキで、データは忠実に・・・・と。納得&反省でした。
Categories: コンピュータ関連