in reply to Re: Re: Re: DBD:ODBC does not return characters with ascii value > 128 correctly (5.8.2 on Solaris -> 5.6.1 on Windows works)
in thread DBD:ODBC does not return characters with ascii value > 128 correctly (5.8.2 on Solaris -> 5.6.1 on Windows works)
However, I will include another code test snippet here for clarification.
And the output is: (Solaris. Perl 5.8.2)use DBI; use DBD::ODBC; my $username = shift; my $password = shift; my $oracle_db = shift; # --- Get data from DB $dbh = DBI->connect("DBI:ODBC:$oracle_db","$username","$password") or die ("Could not make connection to database:\n". "$DBI::errstr\n"); $dbh->{RaiseError} = 1; my $sql_statement = 'SELECT A.LABEL, A.COMMENTS FROM mydb.table WHERE A.LABEL = ?'; $parm_cursor = $dbh->prepare ( $sql_statement ); $parm_cursor->execute('MYLABEL'); (my $label, my $comment) = $parm_cursor->fetchrow_array(); # --- Verify output from DB print "$comment\n"; my @nums = map ord, split //, $comment; print join ' ', @nums,"\n"; # --- Verify that console can print a degree sign my $str = "30 degrees = 30".chr(186); @nums = map ord, split //, $str; print "$str\n"; print join ' ', @nums,"\n";
And the output is: (Windows. Perl 5.6.1)INITIAL VALUE IS 0.0? 73 78 73 84 73 65 76 32 86 65 76 85 69 32 73 83 32 48 46 48 63 30 degrees = 30º 51 48 32 100 101 103 114 101 101 115 32 61 32 51 48 186
Is this a bug or a feature??INITIAL VALUE IS 0.0º; 73 78 73 84 73 65 76 32 86 65 76 85 69 32 73 83 32 48 46 48 186 30 degrees = 30º; 51 48 32 100 101 103 114 101 101 115 32 61 32 51 48 186
I can't reinstall perl 5.6.1 on Solaris to check it (the CM and QA people would shoot me!), but I am beginning to think that this is not a Windows/Solaris difference, but a difference between perl 5.6.1 and 5.8.2.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: DBD:ODBC does not return characters with ascii value > 128 correctly (5.8.2 on Solaris -> 5.6.1 on Windows works)
by hardburn (Abbot) on Feb 24, 2004 at 16:42 UTC |