Javaは、すべての有効なUnicodeテキストを格納できます。内部でUTF-16を使用します。
データパス全体を正しく構成すると、すべてのテキストが保持されます。次のことを確認する必要があります:
- 正しい文字列がJavaに到達します(Webアプリケーションの場合、送信されるフォームの文字エンコード)。
- Javaは、UTF-8のデータベースと通信する必要があることを認識しており、データベースは、接続を介してUTF-8を予期している必要があることを認識しています。これは、データベース接続を設定するときに確認してください。
- データはUTF-8としてデータベースに保存されます。
[MySQLのドキュメント]主張に注意してください UTF-8は、基本多言語面の外部に文字を格納することはできません(すべての「通常の」文字はBMP内にあります)。 UTF-8自体は、すべてのUnicode文字を完全に格納でき、データベースはこれらの文字もエンコードできる必要があります。
Java自体は問題ありません。まれなUnicode文字は実際には2文字であることに注意してください(代理ペア )Javaで。