Subject Re: Cannot transliterate character between character sets
Author stefan_ssssmart
--- In firebird-support@yahoogroups.com, Adriano dos Santos Fernandes
<adrianosf@...> wrote:
>
> stefan_ssssmart escreveu:
> > Adriano, thank you for your reply.
> >
> > The problem is that in my post I was just describing a test-case. In
> > reality we are talking about 30 production databases each with around
> > 3500 procedures and 1000 triggers.
> >
> > If I understood you well, you are proposing to drop and recreate all
> > this procedures and triggers using a connection character set like
> > ISO8859_1? I thought that the procedure rdb$fix_metadata would fix the
> > problem?
> >
> This procedure fix it, but if you already run it, it already changed
> metadata to UNICODE_FSS. If you run it again on a object not recreated
> wrong it will convert UNICODE_FSS (thinking it's in, say, ISO8859_1) to
> UNICODE_FSS.
>
> Anyway, you're free to update the script to run only on the objects
that
> you want.
>
OK, finally I managed to repair the database. Since we always used
'NONE' in our client connections (or omitted the charset at all) I
thought I had to call rdb$fix_metadata with 'NONE' as input, but as we
are making all of our DDL changes from spanish Windows computers I
should have used the local codepage WIN1252. After calling
rdb$fix_metadata with 'WIN1252' and using this character set in
further client connections (as you told me before), everything seems
to work ok.
I suppose that using ISO8859_1 would have worked as well?
> > Second I used the test-case that you can see below with Firebird 2.1.1
> > on Windows and did not receive any error "Malformed string".
>
> But I said that this is FB 2.5 behavior.
Yes, sorry, I noticed after posting and tried to delete but
unfortunately the message had already been sent to you.
>
>
> Adriano
>