Re: Oracle encoding query
[email protected] ("H.Merijn Brand") Wed, 6 Dec 2017 16:12:53 +0100
| Newsgroups | perl.dbi.users |
|---|---|
| Message-ID | <[email protected]> |
On Wed, 6 Dec 2017 15:50:11 +0100, "H.Merijn Brand" <[email protected]> wrote: > I have an Oracle databse with NLS_CHARACTERSET US7ASCII > > I have a table "land", like > > create table land ( > c_land number (4) not null, > zoekarg varchar2 (5), > land varchar2 (40), > diac number (1), > d_in number (8), > d_end number (8), > opm varchar2 (150), > mut number (1), > icao varchar2 (3), > land_u varchar2 (80) > ); > > In there the field "land" has the content *without* special characters, > like > > Zuidrhodesie > > the special characters are stored elsewhere, indicated by the field diac > > The field land_u contains the extended land *with* diacriticals, like > > Zuidrhodesië > ^ > > in UTF-8 encoding. Note that this is possible because of US7ASCII > > what is stored in the database is > > Zuidrhodesi\303\253 > > using perl to extract that makes displaying those values easy, but I > have no idea how I can get programs like SQL Developer to show that > content the way it is intended > > Is there an oracle function I could use to convert byte-encode UTF-8 > to something SQL developer "understands" > > select utf8_bytes_to_utf16_for_sql_developer (land_u) from land; > > any hint is welcome. Currently SQL Developer will show > > Zuidrhodesi�� > > where the trailing �'s are both \x0fffd (\N{REPLACEMENT CHARACTER}), > which is not really helpful > > I have been playing with several variants of > > select convert (land_u, 'AL16UTF16', 'UTF8') from land where c_land = 7072; > > but I didn't get SQL Developer to show the ë select utl_encode.text_encode (land_u) from land where c_land = 7072; => Zuidrhodesi=C3=AB so SQL developer *does* see the individual bytes as they are stored I can get the expected display with select utl_i18n.raw_to_nchar (utl_i18n.string_to_raw (land_u), 'utf8') from land where c_land = 7072; which experiences as rather overcomplicated, esp if I need to do this for all _u fields in the query :( -- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using perl5.00307 .. 5.27 porting perl5 on HP-UX, AIX, and openSUSE http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/
signature.asc
(application/pgp-signature, 473 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBAgAGBQJaKAj7AAoJEAOhR6E+XcCY0LUH/jZ8t/LLcKYweyCNnP370Kl1 hkT2QvXchAoBAwkDUUZqrsz0d7WdVnD/lGEB9zT6+cvyI5QM1VABjCwJvhzfVXR4 /Q7g1dd37q+8UQ3wZrOOAEhyBv3juus0lKhm5eivFnDUSAQJ6jkQyZR9N3XychXE 16R1W1GKZG2tRZ4LAsMWrweRPvMtZeZOos/YfNxhLF2oLv7uKwDfrcrPlHPZakID wauDpH2pQTsSHhGJrejWpXtzYYCzgJAZmj4N3Xs+FAone3SWdMVwAx3q9DAf4SWP npS6YSHw2znhXFxKQz5wLSybmPMrp7wflpq5zglNyl/gROhqXF0MLPHVCN3L4M8= =qdcB -----END PGP SIGNATURE-----