Windows で Java と PostgreSQL を使用しています。İ、ş、ö、ç などのトルコ語の文字を含む単語がいくつかあります。
Java では、単語を文字列に割り当て、それをデータベースに書き込もうとします。Javaで印刷すると、エンコーディングが正しく表示され、すべての文字が正しく表示されます。ただし、データベースへの書き込み中に、テキストが破損/スクランブルされているように見えます。
次のコマンドでデータベースを作成しました。
CREATE DATABASE dbname ENCODING "UTF-8"
(İ -> \u0130 , ş -> \u015F) のように、トルコ語の文字を ISO-8859-1 エンコーディングに変換して修正しようとしました。
//\u0130leti\u015Fim = İletişim
title = \u0130leti\u015Fim
String mytitle = new String(title.getBytes("ISO-8859-1"), "UTF-8");
そして、mytitle
データベースに書き込もうとしましたが、うまくいきませんでした。
アドバイスありがとうございます。
解決済み : トルコ語の文字をデータベースに書き込むことができることに気付きましたが、問題は応答にありました。応答に書き込む前にこれらの行を追加しました。
String contentType= "text/html;charset=UTF-8";
response.setContentType(contentType);
response.setCharacterEncoding("utf-8");
これを追加した後、動作するようになりました。うまく説明できれば幸いです。