I need to take utf8 strings (from an Oracle database) and write them to a file
in a single-byte codeset (8859-1, 8859-2....).
I cannot get it to work at all. Test program enclosed
Here is what I get on output:
vzb601b: /vzb/vzb601b/work/gleijonh/utftest $ perl tryit.pl
Name is \x{c384}stan\x{c3a5} Bruk AB\n UTF String:Name is ì
stanì¥ Bruk AB
Name is \N{LATIN CAPITAL LETTER A WITH DIAERESIS}stan\N{LATIN SMALL LETTER A
WITH RING ABOVE} Bruk AB Named String: Name is Ã
stanå Bruk AB
Open 'open (OUT1, ">", "sample1")' returns 1
Open 'open (OUT2, ">:utf8", "sample2")' returns 1
Open 'open (OUT3, '>:encoding(iso-8859-1)', 'sample3')' returns undef
Name is ?stan? Bruk AB
(real name in string is 'Östanå Bruk AB' (Swedish...)
What am I doing wrong?
Here is the perl -V
vzb601b: /vzb/vzb601b/work/gleijonh/utftest $ perl -V tryit.pl
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=solaris, osvers=2.9, archname=sun4-solaris-64
uname='sunos magpie 5.9 generic_122300-03 sun4u sparc sunw,sun-fire-v490 '
config_args='-de -Dprefix=/sv/app/perl/product/5.8.8_64 -Dcc=cc
-Accflags=-fast -xarch=v9 -DPERL_USE_SAFE_PUTENV -Aldflags=-xarch=v9
-Alddlflags=-xarch=v9 -Aprepend:libswanted=cl pthread -Duse64bitall'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef
usemultiplicity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=define uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-xarch=v9 -fast -xarch=v9 -DPERL_USE_SAFE_PUTENV
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O',
cppflags='-xarch=v9 -fast -xarch=v9 -DPERL_USE_SAFE_PUTENV
-I/usr/local/include'
ccversion='Sun C 5.8 2005/10/13', gccversion='', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -xarch=v9 -xarch=v9 -L/opt/SUNWspro/prod/lib/v9
-L/lib/sparcv9 -L/usr/lib/sparcv9 -L/usr/ccs/lib/sparcv9 -L/usr/local/lib '
libpth=/opt/SUNWspro/prod/lib/v9 /lib/sparcv9 /usr/lib/sparcv9
/usr/ccs/lib/sparcv9 /usr/local/lib /usr/lib /usr/ccs/lib
libs=-lpthread -lsocket -lnsl -ldl -lm -lc
perllibs=-lpthread -lsocket -lnsl -ldl -lm -lc
libc=/usr/lib/sparcv9/libc.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
cccdlflags='-KPIC', lddlflags=' -G -xarch=v9 -xarch=v9
-L/opt/SUNWspro/prod/lib/v9 -L/lib/sparcv9 -L/usr/lib/sparcv9
-L/usr/ccs/lib/sparcv9 -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: PERL_MALLOC_WRAP PERL_USE_SAFE_PUTENV
USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES
USE_PERLIO
Built under solaris
Compiled at Aug 8 2007 11:16:52
%ENV:
PERL5LIB="/vzb/vzb601b/atai/rel/server/perlmod:/vzb/vzb601b/rel/server/perlmod:/vzb/vzb_app/perl/5.8.8_64/lib/5.8.8:/vzb/vzb_app/perl/5.8.8_64/lib:/vzb/vzb_app/perl/5.8.8_64/lib/site_perl/5.8.8:/vzb/vzb_app/perl/5.8.8_64/lib/site_perl"
PERLDIR="/vzb/vzb_app/perl/5.8.8_64"
PERLIO="utf8"
PERL_ENCODING="utf8"
PERL_HOME="/vzb/vzb_app/perl/5.8.8_64"
PERL_SIGNALS="unsafe"
PERL_UNICODE="DSAL"
@INC:
/vzb/vzb601b/atai/rel/server/perlmod
/vzb/vzb601b/rel/server/perlmod
/vzb/vzb_app/perl/5.8.8_64/lib/5.8.8/sun4-solaris-64
/vzb/vzb_app/perl/5.8.8_64/lib/5.8.8
/vzb/vzb_app/perl/5.8.8_64/lib/5.8.8/sun4-solaris-64
/vzb/vzb_app/perl/5.8.8_64/lib/5.8.8
/vzb/vzb_app/perl/5.8.8_64/lib
/vzb/vzb_app/perl/5.8.8_64/lib/site_perl/5.8.8/sun4-solaris-64
/vzb/vzb_app/perl/5.8.8_64/lib/site_perl/5.8.8
/vzb/vzb_app/perl/5.8.8_64/lib/site_perl/5.8.8/sun4-solaris-64
/vzb/vzb_app/perl/5.8.8_64/lib/site_perl/5.8.8
/vzb/vzb_app/perl/5.8.8_64/lib/site_perl
/sv/app/perl/product/5.8.8_64/lib/5.8.8/sun4-solaris-64
/sv/app/perl/product/5.8.8_64/lib/5.8.8
/sv/app/perl/product/5.8.8_64/lib/site_perl/5.8.8/sun4-solaris-64
/sv/app/perl/product/5.8.8_64/lib/site_perl/5.8.8
/sv/app/perl/product/5.8.8_64/lib/site_perl
Greger Leijonhufvud
Senior Development Consultant
IDA Business Park, Dangan
Galway, Ireland
* +353 (0)91 501378
O2 +44 (0)777 0680026
7 +353 (0)91 527351
@ Greger(_dot_)leijonhufvud(_at_)intecbilling(_dot_)com
<mailto:Greger(_dot_)leijonhufvud(_at_)intecbilling(_dot_)com>
This e-mail and any attachments are confidential and may also be legally
privileged and/or copyright material of Intec Telecom Systems PLC (or its
affiliated companies). If you are not an intended or authorised recipient
of this e-mail or have received it in error, please delete it immediately
and notify the sender by e-mail. In such a case, reading, reproducing,
printing or further dissemination of this e-mail or its contents is strictly
prohibited and may be unlawful.
Intec Telecom Systems PLC does not represent or warrant that an attachment
hereto is free from computer viruses or other defects. The opinions
expressed in this e-mail and any attachments may be those of the author and
are not necessarily those of Intec Telecom Systems PLC.
tryit.pl
Description: tryit.pl