特殊文字とJava文字列
-
12-12-2019 - |
質問
'gerald.o'leary'
を含むべきテキスト文字列(Java String)を持つ。
リアルティでは、REST 'C2'に加えて制御文字を含みます。私は16進ダンプを含めました、16進数のダンプのためのimage1.png
を参照してください。
DBに保存してクライアントでSQLを実行して読んだとき、C2が3Fに置き換えられたHexエディタに貼り付けて、image2.png
を参照してください。
私はそれに住んでいたかもしれませんが、これら2つの文字列がstring.equals()を使用してJavaで比較されている場合、falseが返されます。
誰かがここで何が起こっているのかを説明してください。!
解決
SQL DBがUTF-8 / Unicode文字(すなわち、ISO-8859-1、ASCIIなどではない)に保存できるかどうかを確認しましたか?
- 最初に標準出力に文字列を出力して、実際には正しい文字を含むかどうかを確認します(出力には大丈夫ですが、??または0xc2 0x92=)。
- その後、データベースの文字セットを確認してください。そのマニュアルを参照してください。
他のヒント
HEXダンプの手数料はわかりませんが、Java文字列はUnicode文字列ですので、1:1文字とバイト間の対応がありません。私はあなたの文字列に1バイトで表現することができないUnicode文字が含まれていると思われます。
所属していません StackOverflow