質問

'gerald.o'leary'を含むべきテキスト文字列(Java String)を持つ。

リアルティでは、REST 'C2'に加えて制御文字を含みます。私は16進ダンプを含めました、16進数のダンプのためのimage1.pngを参照してください。

ENTER IMENT Descriptionこちら

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文字が含まれていると思われます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top