-1

mysqlデータベースに日本語、ギリシャ語、中国語、韓国語などの特殊文字が保存されている場合、フェッチするJava文字列データは完全ですか?

明確にするために、私の質問は、mysqlでフェッチした特殊文字をJava文字列に格納すると完全になり、JEditorPaneなどのテキストコンポーネントに使用すると文字形式で表示できるようになるかどうかです。

     String data;
     ResultSet r = sabiNa.executeQuery();
     while(r.next()) {
         data = r.getString("data");
     }
4

1 に答える 1

1

Javaは、すべての有効なUnicodeテキストを格納できます。内部でUTF-16を使用します。

データパス全体を正しく構成すると、すべてのテキストが保持されます。次のことを確認する必要があります。

  • 正しい文字列がJavaに到達します(Webアプリケーションの場合、送信されるフォームの文字エンコード)。
  • Javaは、UTF-8のデータベースと通信する必要があることを認識しており、データベースは、接続を介してUTF-8を予期している必要があることを認識しています。これは、データベース接続を設定するときに確認します。
  • データはUTF-8としてデータベースに保存されます。

[MySQLのドキュメント]は、UTF-8は基本多言語面の外に文字を格納できないと主張していることに注意してください(すべての「通常の」文字はBMP内にあります)。UTF-8自体は、すべてのUnicode文字を完全に格納でき、データベースはこれらの文字もエンコードできる必要があります。

Java自体は問題ありません。Javaでは、まれなUnicode文字が実際には2文字(サロゲートペアと呼ばれる)であることを覚えておいてください。

于 2012-10-26T10:44:22.213 に答える