17

Web サービスからデータベースへの特殊文字を含むテキストの送信または表示に問題があります。私の日食では、文字エンコーディングを UTF-8 に設定しましたが、それでも文字を表示できません。たとえば、以下のコードのような単純な印刷

String test ="привет"; 
System.out.println(test);

また

String test ="привет";
String query = "insert into communication (`test`) VALUES ('"+ test +"');
PreparedStatement preparedStmt1 = con.prepareStatement(query);
preparedStmt1.executeUpdate();

コンソールでの結果と、これをデータベースに送信した場合の結果は ?????? です。これをコンソールに正しく表示し、できればデータベースに表示するにはどうすればよいですか

4

4 に答える 4

13

Eclipse を使用している場合は、

  1. プロジェクトを右クリックします。
  2. プロパティに移動
  3. 「テキストファイルのエンコード」でUTF-8を選択

ここに画像の説明を入力

于 2014-11-30T22:12:54.767 に答える
10

これが機能するかどうかを確認してください。

    PrintStream out = new PrintStream(System.out, true, "UTF-8");
    out.println(test);

DB に保存するには、以下を使用して文字列を UTF-8 で明示的にエンコードします。

String newString = new String(test.getBytes(), "UTF8");
于 2012-06-07T14:29:27.170 に答える
2

ええ、そのXXI。世紀と私たちはまだ文字エンコードのようなものに苦労しています...

私の最初の推測は次のいずれかです:

  1. ソースファイルのエンコーディングが間違っている可能性があります(Mavenのようなビルドツールを使用していますか?そこでもソースエンコーディングを設定する必要があるかもしれません)、
  2. コンソールのエンコーディングが間違っている可能性があります(Windowsを使用していますか?デフォルトのコマンドラインコンソールはデフォルトではUTFではなく、ローカルに依存しますが、レジストリを少し操作するだけでエンコーディングを設定できます)
  3. DBエンコーディングが正しくない可能性があります(テーブルエンコーディングとは何ですか、確認できますか?)
于 2012-06-07T14:31:50.403 に答える
0

最初に文字列を ISO-8859 にデコードしてから UTF-8 にエンコードする必要があるかもしれません

于 2012-06-07T14:36:15.313 に答える