Webサービスからデータベースへの特殊文字を含むテキストの送信または表示に問題があります。私のEclipseでは、文字エンコードをUTF-8に設定しましたが、それでも文字を表示できません。たとえば、以下のコードのような単純な印刷
String test ="привет";
System.out.println(test);
OR
String test ="привет";
String query = "insert into communication (`test`) VALUES ('"+ test +"');
PreparedStatement preparedStmt1 = con.prepareStatement(query);
preparedStmt1.executeUpdate();
コンソールの結果と、これを自分のデータベースに送信すると、??????になります。これをコンソールに、できればデータベースに正しく表示するにはどうすればよいですか
ええ、そのXXI。世紀と私たちはまだ文字エンコーディングのようなことに苦労しています...
私の最初の推測は次のいずれかです:
Eclipseを使用している場合は、
これが機能するかどうかを確認します。
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(test);
DBに格納する場合は、以下を使用して文字列をUTF-8で明示的にエンコードします
String newString = new String(test.getBytes(), "UTF8");
最初に文字列をISO-8859にデコードしてから、UTF-8にエンコードする必要があるかもしれません