Subject Re: FireBird and UNICODE
Author Roman Rokytskyy
> I created a new FireBird (1.03) database using IBOConsole and set
> the default character set to UNICOODE_FSS.
> My application is accessing firebird with the following URL:
> jdbc:firebirdsql://127.0.0.1/c:\fbapp.gdb?lc_ctype=UNICODE_FSS
> and I'm using the latest available JayBird (1.01). Also, I'm only
> using PreparedStatement with setString().
>
> Unfortunatly, I cannot deal with unicode characters: I just got
> square in place of the characters.

It might be that your application cannot display them correctly. Try
to set your lc_ctype to one of the one-byte character sets (WIN125x
for example).

> I also tried with different GUI (IBManager, Marathon...) and I
> was'nt able to enter any unicode characters (greek, symbols...)

What character set did you specify for your IBManager, Marathon
connection? I don't think that they support unicode, but you can
specify WIN1252 as connection character set to be able to use umlauts,
or WIN1251 for cyrillic characters. Database server will convert them
to unicode itself.

> Finally, I tried with Borland's database pilot and was'nt more
> lucky!
>
> What did I miss? Do I have to specify the character set individually
> to all fields?

In theory - no. You can do a simple test: write something into the
database, and then try to read it using any application (even simple
SELECT * FROM my_table in isql.exe will do), but ensure that you
specified your client-side encoding to be UNICODE_FSS (in isql.exe you
execute SET NAMES UNICODE_FSS; before connecting the database). If
your database is not UNICODE_FSS, but NONE, you will get "Cannot
transliterate characters between character sets" exception. If you get
something (even squares), then you either wrote incorrect data or you
cannot display them correctly.

Hope this helps.

Best regards,
Roman Rokytskyy