Subject | Is there an auto-conversion for text blobs while reading with isc_get_segment? |
---|---|
Author | Daniel Vogelbacher |
Post date | 2012-09-11T21:15:53Z |
Hi,
is there an auto conversion from the character set of a text blob to
the encoding set for the connection?
For example, what happens if my client connection character set is
UTF-8, but the text blob column has ISO-8859-1? Did isc_get_segement()
return UTF-8 data or ISO-8859-1?
As far as I understand the Interbase API manual, I need to setup a
filter. But how can this be done? I assume something like this:
isc_blob_lookup_desc(); // prepare from_desc;
isc_blob_default_desc(); // prepare dest_desc;
unsigned char bpb[20];
unsigned short actual_len;
isc_blob_gen_bpb(sv, &to_desc, &from_desc, sizeof(bpb),
bpb, &actual_len);
But I don't see how this get the connection encoding?
The description for isc_blob_default_desc() tells me:
[...]
Character set is set to the default character set for the process or
database.
[...]
But isc_blob_default_desc() has no database handle param or something
else which can be used to resolve the connection encoding. So I think
this is the wrong way.
I'm also a little bit confused by the fact that the DPB for
isc_attach_database() (option isc_dpb_lc_ctype) requires a string like
"UTF-8" but the isc_bpb_target_interp option in the BPB requires an
integer ..hhuuu?
--
Daniel Vogelbacher
web: http://daniel.vogelbacher.name
irc: cytrinox @ (freenode|ircnet|quakenet)
www.informave.org
is there an auto conversion from the character set of a text blob to
the encoding set for the connection?
For example, what happens if my client connection character set is
UTF-8, but the text blob column has ISO-8859-1? Did isc_get_segement()
return UTF-8 data or ISO-8859-1?
As far as I understand the Interbase API manual, I need to setup a
filter. But how can this be done? I assume something like this:
isc_blob_lookup_desc(); // prepare from_desc;
isc_blob_default_desc(); // prepare dest_desc;
unsigned char bpb[20];
unsigned short actual_len;
isc_blob_gen_bpb(sv, &to_desc, &from_desc, sizeof(bpb),
bpb, &actual_len);
But I don't see how this get the connection encoding?
The description for isc_blob_default_desc() tells me:
[...]
Character set is set to the default character set for the process or
database.
[...]
But isc_blob_default_desc() has no database handle param or something
else which can be used to resolve the connection encoding. So I think
this is the wrong way.
I'm also a little bit confused by the fact that the DPB for
isc_attach_database() (option isc_dpb_lc_ctype) requires a string like
"UTF-8" but the isc_bpb_target_interp option in the BPB requires an
integer ..hhuuu?
--
Daniel Vogelbacher
web: http://daniel.vogelbacher.name
irc: cytrinox @ (freenode|ircnet|quakenet)
www.informave.org