Jaybird 3 以降、サーバーが Firebird 2.5 以降の場合、データベース ファイル名は常に UTF-8 として送信されます。
Jaybird 2.2 以前では、データベース名での特殊文字のサポートが制限されていました。この問題を回避するために使用できるいくつかのオプションがありますが、それらが実際に機能するかどうかは、Firebird のバージョンと OS のデフォルトの文字セット (Firebird が実行されている場所) に大きく依存します。
オプション 1: Firebird サーバーが実行されているオペレーティング システムの既定の文字セットであるfilename_charset=<name of charset>
接続プロパティを使用します。<name of charset>
例えば:
jdbc:firebirdsql://myserver/mydatabase?filename_charset=Cp1252
オプション 2 (Firebird 2.5 以降、Jaybird 2.2 を使用): JDBC-251で説明されている回避策を使用します。
Java アプリケーションを開始し、接続 URL-Dfile.encoding=UTF8
に含めます。utf8_filename=1
jdbc:firebirdsql://myserver/mydatabase?utf8_filename=1
このオプションを使用する場合は、接続プロパティcharSet
、localEncoding
またはlocal_encoding
(Java 文字セット名の場合)、および/またはencoding
( lc_ctype
Firebird 文字セット名の場合) を使用して接続文字セットを指定していることを確認してください。NONE
そうでない場合は、JVM のデフォルト文字セットを使用するFirebird 文字セットを使用しておりcharSet
、file.encoding
(場合によっては- 指定に加えて- に明示的に設定するcharSet
必要がある場合もあります)。encoding
NONE
オプション 3:aliases.conf
データベースの firebird サーバーで ASCII 文字のみのエイリアスを定義し、代わりにこのエイリアスを使用して接続します。
jdbc:firebirdsql://myserver/thealias
開示: 私は Jaybird 開発者の 1 人です